while循环
循环就是重复执行多次。其格式如下:
// while 循环的基本样式
var i = 0 // 循环变量 控制重复次数
while(条件){
循环体
i +=1
}
案例一:把 I miss you 重复输出10次?
代码如下:
var i =1
while (i <= 10){
println(s"${i}.I miss you")
i += 1
案例二:输出1~100内的奇数,每个一行?
代码如下:
// 方法一:
var i= 1
while (i <= 100){
println(i) //println重复了100次
i += 2
// 方法二:
var i= 1
while (i <= 100) {
if(i % 2 != 0){
println(i)
}
i += 1
}
案例三:求1-100的和?
代码如下:
var sum = 0
var i = 1
while (i <= 100) {
sum =sum +i
i += 1
}
println(s"sum=${sum}")
案例三:求1-100的奇数和?
代码如下:
var sum = 0
var i= 1
while (i <= 100) {
sum = sum + i
i += 2
}
println(s"sum=${sum}")
案例四:求 1 + 1/2 + 1/3 +1/4 + 1/5+...+ 1/100 的和。
代码如下:
var sum =0.0
var i= 1
while (i <= 100) {
sum = sum + 1.0/i
i += 1
}
println(s"sum=${sum}")
案例五:求 1 - 1/2 + 1/3 -1/4 + 1/5+...+ 1/19的和?
代码如下:
var i = 1
var sum:Double =0
while (i <= 19){
if (i % 2 == 1){
sum = sum + 1.0/i
} else {
sum = sum - 1.0/i
}
i += 1
}
println(s"sum=${sum}")
while死循环
在需要一直执行的时候,就可以使用死循环。
例如,不停地判断用户的输入的内容是否是闰年。
代码如下:
while (true){
print("请输入要判断的年份(输入 0 就结束判断):")
// 判断用户输入的年份 是否是闰年
val year =scala.io.StdIn.readInt()
if (year % 400 ==0 || (year %4==0 && year % 100 != 0 )){
println(s"year=${year}是闰年")
} else{
println(s"year=${year}不是闰年")
}
}
break
跳出循环,底层会抛出异常来跳出循环,外层捕获异常。
break基本格式为:
import scala.util.control.Breaks._
object Main {
def main(args: Array[String]): Unit = {
breakable {
while (true) {
// 你的代码
break
}
}
}
}
案例一:判断用户输入的年份是否是闰年,如果用户输入0,则结束判断。
代码如下:
import scala.util.control.Breaks.{break, breakable}
object F923 {
def main(args: Array[String]): Unit = {
// 从循环中跳出来?
// 输入 0 就结束判断
breakable {
while (true) {
println("请输入要判断的年份(输入 0 就结束判断):")
// 判断用户输入的年份,是否闰年
val year = scala.io.StdIn.readInt()
if (year == 0) {
// 结束循环
break
}
if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) {
println(s"$year 是闰年")
} else {
println(s"$year 不是闰年")
}
}
}
println("死循环结束了....系统退出")
}
}
do while循环
注意:do ... while 和while的区别!!
do while :无论条件是否成立 都会执行一次!
var i = 100
do {
println(i)
i += 1
} while (i<=10) // 会有执行的结果为 100
while:如果条件不成立都不会执行!
var i = 100
while (i<=10){
println(i)
i += 1 // 该程序条件不成立 不执行
}