前提:了解 while 循环
while循环
// while 的公式
/*
var i += 1 循环变量,控制重复的次数
while(条件) {
循环体
i += 1
}
一,while循环的格式
案例一:
将 I miss you 循环十遍
var i = 1
while (i <= 10){
println(s"${i}. I miss you")
i += 1
案例二:
输出1—100内的奇数,每一个一行
object class02 {
def main(args: Array[String]): Unit = {
// 输出1—100内的奇数,每一个一行
//第一种方法
/*
var i = 1
while (i<=100){
println(i)
i += 2
}
*/
//第二种方法
var i = 1
while (i<=100){
if(i%2 == 1){
println(i)
}
i += 1
}
}
}
案例三:
分别求出1-100的和,奇数和,偶数和
object calss03 {
def main(args: Array[String]): Unit = {
//求1-100的和
var sum1 = 0
var i1 = 1
while (i1 <= 100){
sum1 += i1
i1 += 1
}
println(s"1到100的和为: $sum1")
//求1-100的奇数和
var sum2 = 0
var i2 = 1
while (i2 <= 100) {
if (i2 % 2 != 0) {
sum2 += i2
}
i2 += 1
}
println(s"1到100的奇数和为: $sum2")
//求1-100偶数和
var sum3 = 0
var i3 = 1
while (i3 <= 100) {
if (i3 % 2 == 0) {
sum3 += i3
}
i3 += 1
}
println(s"1到100的偶数和为: $sum3")
}
}
注意:如何退出循环(案例和解释如下):
案例四:判断年份是否为闰年,输出 0 时退出程序。
分析:运用break
import scala.util.control.Breaks.{break,breakable}
object class05 {
def main(args: Array[String]): Unit = {
/*
var i = 1
while(i < 10){
print(1)
}
*/
//如何从循环跳出来
breakable{
while (true) {
print("请输入要判断的年份(输入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 循环的格式
格式案例如下:
object class06 {
def main(args: Array[String]): Unit = {
var i = 1
do{
println(i)
i += 1
} while (i<=10)
}
}
注意与 while 循环的区别:
//do while
//无论条件是否成立,都会执行一次
//while
//如果条件不成立,不会执行
案例一:
求数列的和: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()
}