(一) for循环
1.如果循环变量的类型能被推断出来,是可以省略掉变量类型的。
2.这里的数据集可以是任意类型的数据集合,如字符串,集合,数组等等。
for循环比while循环更简洁
利用while循环写出1 ~ 20
var i = 1
while(i <= 20){
println(i)
i += 1
}
利用for循环写出1 ~ 20
for(j <- 1 to 20){
println(j)
}
(二) 循环守卫
可以在循环中添加条件,如果条件成立就执行循环。这个叫循环守卫。
提问一:输出 1~20 之间的偶数
for(j <- 1 to 20; if(j % 2 == 0); if(j % 3 == 0)){
println(j)
}
(三)循环步长
提问二:如何输出1 ~ 100 之间的奇数?
按1,3,5... 这个格式来输出,这就涉及到步长。
格式1:1 to 5 by 2
格式2:Range(1,5,2)
for(i <- 1 to 100 by 2 ){
println(i)
}
for循环的返回值
for 循环值是一个列表 里面保存了多个值
var rs = for(i <- 1 to 4) yield {
i * 2
}
println(rs) // Vector(2,4,6,8)
println(rs(0)) // 2
println(rs(1)) // 4
println(rs(2)) // 6
=============================================================
提问三:打印数字 1~100 每行包括一组五个数 每组换行
for(i <- 1 to 100) {
//print(s"$i ")
printf(" %4d ", i)
if(i % 5 == 0) {
println()
}
}
提问四:输入一个正整数n 输出 斐波那契数列 的前n列
print("请输入n的值(大于等于3):")
val n = scala.io.StdIn.readInt()
var a = 1
var b = 2
for (i <- 3 to 10){
var c = a + b
println(s"第${i}项是: ${c}")
a = b
b = c
}