scala的for循环:
基本语法:
var num1=start_value;
var num2=end_value;
for(i -> num1 to num2 by step_num [j -> num1 to num2 by step_num] [;condition1;condition2]){
//代码1
}
step_num
:步长
condition1
:循环守卫(条件,如果有,用;
号隔开)
<- num1 to num2
:范围给定(左右均为闭合)
<- num1 until num2
:范围给定(左闭又开,取值取不到num2)
for推导式yield:把当前循环的元素记录下来,循环结束后,返回一个这些元素的集合。scala的for循环可以用花括号代替小括号;当for 推导式仅包含单一表达式时使用圆括号,当其包含多个表达式时使用大括号
var ff = for(i<- 1 to 10;if i%2==0) yield i
for(i<-ff){
println(i)
}
}
2
4
6
8
10
scala中的break:
scala的中断语句,必须导入break包:
import scala.util.control.Breaks_
import scala.util.control.Breaks._
for (i<- 1 to 10){
if (i==6){
break
}
println(i)
}
1
2
3
4
5
scala中的continue:
scala中没有continue ,用breakable()将break代码块包起来,由于break只跳出一次,所以在跳出break之后,进入了breakable(),代码可以继续执行。
import scala.util.control.Breaks._
for (i<- 1 to 10){
breakable{
if (i==6){
break
}
println(i)
}
}
1
2
3
4
5
7
8
9
10
小练习:
for(i<- 1 to 9){
for(j<- 1 to i){
print(i+"*"+j+"="+i*j+"\t")
}
println()
}
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
for(i<- 1 to 10){
for(j<- 1 to 10){
print("*")
}
println()
}
**********
**********
**********
**********
**********
**********
**********
**********
**********
**********
for(i<- 1 to 10){
for(j<- 1 to 10-i){
print(" ")
}
for(k<- 1 to i){
print("*")
}
for(m<- i to 10){
print("*")
}
println()
}
***********
***********
***********
***********
***********
***********
***********
***********
***********
***********
for(i<- 1 to 10){
for(j<- 1 to 10-i){
print(" ")
}
for(k<- 1 to 2*i-1){
print("*")
}
println()
}
*
***
*****
*******
*********
***********
*************
***************
*****************
*******************
for(i<- 1 to 10){
for(j<- 1 to i){
print(" ")
}
for(k<- 1 to (10-i)*2-1){
print("*")
}
println()
}
*****************
***************
*************
***********
*********
*******
*****
***
*
for(i<- 1 to 10){
for(j<- 1 to 10-i){
print(" ")
}
for(k<- 1 to 2*i-1){
print("*")
}
println()
}
for(i<- 1 to 10){
for(j<- 1 to i){
print(" ")
}
for(k<- 1 to (10-i)*2-1){
print("*")
}
println()
}
*
***
*****
*******
*********
***********
*************
***************
*****************
*******************
*****************
***************
*************
***********
*********
*******
*****
***
*
for(i<- 1 to 10){
for(k<- 1 to 10-i){
print(" ")
}
for(k<- 1 to i){
print("* ")
}
println()
}
*
* *
* * *
* * * *
* * * * *
* * * * * *
* * * * * * *
* * * * * * * *
* * * * * * * * *
* * * * * * * * * *
for(i<- 1 to 10){
for(k<- 1 to i){
print("*")
}
println()
}
*
**
***
****
*****
******
*******
********
*********
**********
for(i<- 1 to 10){
for(k<- 1 to 10-i){
print("*")
}
println()
}
*********
********
*******
******
*****
****
***
**
*
for(i<- 1 to 10){
for(j<- 1 to 10-i){
print(" ")
}
for(k<- 1 to i){
print("*")
}
println()
}
*
**
***
****
*****
******
*******
********
*********
**********
for(i<- 1 to 10){
for(j<- 1 to i){
print(" ")
}
for(k<- 1 to 10-i){
print("*")
}
println()
}
*********
********
*******
******
*****
****
***
**
*
for(i<- 0 to 6){
println(i+"+"+(6-i)+"="+6)
}
0+6=6
1+5=6
2+4=6
3+3=6
4+2=6
5+1=6
6+0=6