while格式
while(condition) {// 满足条件就执行,如果条件一直满足,就一直执行。
statement(s)
}
一、while循环
1.如何把”i miss you ”重复输出3000次?
object basic13 {
def main(args: Array[String]): Unit = {
//while 循环(重复做)
//i:循环变量,控制循环执行次数的变量。一般这个变量名设置为i。
var i=1
while (i<3001){
println(s"${i},I miss you!")
i +=1
}
println("循环结束")
}
}
2.输出1~100内的奇数,每个一行
object basic14 {
def main(args: Array[String]): Unit = {
//while 循环(重复做)
//i:循环变量,控制循环执行次数的变量。一般这个变量名设置为i。
//它的起点不一定非要从0和1开始
// 循环输出1~100奇数,每行一个
var i=1
while (i<=100){
if (i%2==1){
println(i)
}
i += 2
}
}
}
3.求1-100的和
object basic15 {
def main(args: Array[String]): Unit = {
//while 循环(重复做)
//i:循环变量,控制循环执行次数的变量。一般这个变量名设置为i。
//它的起点不一定非要从0和1开始
//目标:1+2+3+4+5+...+100的结果
var sum=0
var i=1
while (i<=100){
sum=sum+i
i+=1
}
println(s"sum=$sum")
}
}
二、死循环
在需要一直执行的时候,就可以使用死循环。
1.不停地判断用户的输入的内容是否是闰年。
object basic16 {
def main(args: Array[String]): Unit = {
//while 循环(重复做)
//i:循环变量,控制循环执行次数的变量。一般这个变量名设置为i。
//它的起点不一定非要从0和1开始
//目标:重复 判断用户输入的年份是否是闰年
while (true){
print("请输入你要判断的年份:")
var year =scala.io.StdIn.readInt()
if (year%400 ==0 || (year%4==0 && year%100!=0)){
println(s"$year 是闰年")
} else {
println(s"$year 不是闰年")
}
}
}
}
三、break
scala中没有现成的break关键字,而是使用面向对象的方式来代替,底层会抛出异常来跳出循环,外层捕获异常。
import scala.util.control.Breaks.{break, breakable}
object basic17 {
def main(args: Array[String]): Unit = {
//while 循环(重复做)
//i:循环变量,控制循环执行次数的变量。一般这个变量名设置为i。
//它的起点不一定非要从0和1开始
//目标:重复 判断用户输入的年份是否是闰年,如果用户输入0,则结束判断,退出程序(跳出循环)
breakable{
while (true){
print("请输入你要判断的年份:")
var year =scala.io.StdIn.readInt()
if (year==0){
println("这里要结束循环")
break
}
if (year%400 ==0 || (year%4==0 && year%100!=0)){
println(s"$year 是闰年")
} else {
println(s"$year 不是闰年")
}
}
}
println("欢迎下次光临")
}
}
通过特殊的语法操作,可以让代码变得简单一些。
四、do while循环
do {
statement(s);
} while( condition );
示意图:
1、输出1 - 10
var i=1
do{
println(s"i=$i")
i+=1
} while (i<= 10)
两者区别:do ... while 和while的区别在于,一定会执行一次。
如下例子,说明一定会执行一次。
var i=1
do{
println(s"i=$i")
i+=1
}while(i<1)