内容如下:
1. while循环的格式
2. do while 循环的格式
3. break的作用
4. while与do while的区别
(一)while循环
[提问]:如何把”i miss you ”重复输出3000次?
循环就是重复执行多次。
while(condition) {// 满足条件就执行,如果条件一直满足,就一直执行。
statement(s)
}
[编码示范] 打印输出1 到5的整数
var i=0
while(i<5){
println(s"i=$i")
i+=1
}
输出1~100内的奇数,每个一行
问:求1-100的和
object Main {
def main(args: Array[String]): Unit = {
var sum:Int = 0
var i = 1
while(i <= 100){
sum += i
i += 1
}
println(sum)
}
}
( 二 ) while死循环
在需要一直执行的时候,就可以使用死循环。例如,不停地判断用户的输入的内容是否是闰年。
object Main {
def main(args: Array[String]): Unit = {
while(true){
var year = scala.io.StdIn.readInt()
if(year%400 ==0 || (year%4==0 && year%100 !=0)) {
println(s"$year 是闰年")
} else {
println(s"$year 不是闰年")
}
i += 1
}
}
}
死循环是一个种非常使用的结果,它能确保核心逻辑一直被调用中。
(三)break
scala中没有现成的break关键字,而是使用面向对象的方式来代替,底层会抛出异常来跳出循环,外层捕获异常。
import scala.util.control.Breaks._
object Main {
def main(args: Array[String]): Unit = {
breakable {
while (true) {
// 你的代码
break
}
}
}
}
[编码示范]:判断用户输入的年份是否是闰年,如果用户输入0,则结束判断。
object Main {
def main(args: Array[String]): Unit = {
breakable {
while(true){
var 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 不是闰年")
}
}
}
}
(四)do while循环
[讲授]
do {
statement(s);
} while( condition );
演示代码:输出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)
案例: 求数列的和:s = 1/2 + 1/3 - 1/4 + 1/5-...+1/19的值
object class06 {
def main(args: Array[String]): Unit = {
//do while
//无论条件是否成立,都会执行一次
//while
//如果条件不成立,不会执行
// do while 方法
var sum = 0.0
var i = 2
var sign = 1
do {
sum += sign * (1.0 / i)
sign = -sign
i += 1
} while (i <= 19)
println(f"数列和为: $sum%.6f")
// while 方法
var sum1:Double = 0
var j = 1
if(j%2 == 1){
sum1 = sum1 + 1.0 / j
}else{
sum1 = sum1 - 1.0 / j
}
j += 1
}
println()
}