for 循环
object basic13 {
def main(args: Array[String]): Unit = {
// 输出1-20
/**
* var i=1
* while(i<=20){
* println(i)
* i+=1
* }
*
*
* for(i<-1 to 20){
* println(i)
*
* }
*/
for(j<-1 to 20 ){
println(j)
}
}
}
1.基本用法
例子:
for (j<-1 to 20 by 1){
println(j)
}
2.步长
例子:
// 2.步长
// 1 2 3 4 5 6 7 8(步长:1)
// 1 3 5 7 9 11 13 15 (步长:2)
for(i<-1 to 20 by 2){
println(i)
}
3. 循环守卫 (可以在循环中添加条件,如果条件成立就执行循环。这个叫循环守卫。)
例子:
// 打印1-20的偶数
// 3.循环守卫
for(i<-1 to 20;if(i%2==0);if(i%3==0)){
println(i)
}
4.循环的返回值
(1).for也可以获取到返回值,使用yield。
例如:
object basic15 {
def main(args: Array[String]): Unit = {
// 1.if 的返回值
// val res=if(2>1){
// "a"
// } else{
// "b"
// }
// println(res)
//
// 2.for 循环的返回值
// for 循环值是一个列表, 里面保存了多个值
val rs=for(i<- 1 to 4)yield {
i*2
}
println(rs)// Vector(2,4,6,8)
println(rs(0))
println(rs(1))
println(rs(2))
}
}
(2)打印1到100的数字,每行显示5个 每组换行
例2.:
object basic17 {
def main(args: Array[String]): Unit = {
// 1.打印1到100的数字,每行显示5个 每组换行
for (i <- 1 to 100) {
print(s"$i ")
if (i % 5 == 0) {
println()
}
}
}
}
(3)输入一个正整数你,输出 斐波那契数列的前n项。
例3:
//2. 输入一个正整数你,输出 斐波那契数列的前n项。
print("请输入一个正整数n(大于等于3):")
val n=scala.io.StdIn.readInt()
var a=1
var b=1
println(s"第${1}项是:1")
println(s"第${2}项是:1")
for(i<-3 to n){
val c=a+b
println(s"第${i}项是:${c}")
a=b
b=c
}