上QQ阅读APP看书,第一时间看更新
1.3.4 循环
Scala中的循环主要有三种:for循环、while循环和do while循环。
1. for循环
for循环的语法如下:
for(变量<-集合或数组){ 方法体 }
表示将集合或数组中的每一个值循环赋给一个变量。
例如,循环从1到5输出变量i的值,代码如下:
scala> for(i<- 1 to 5) println(i) 1 2 3 4 5
1 to 5表示将1到5的所有值组成一个集合,且包括5。若不想包括5,则可使用关键字until,代码如下:
scala> for(i<- 1 until 5) println(i) 1 2 3 4
使用这种方式可以循环输出字符串。例如,将字符串“hello”中的字符循环输出,代码如下:
scala> val str="hello" str: String = hello scala> for(i<-0 until str.length) println(str(i)) h e l l o
还可以将字符串看作一个由多个字符组成的集合,因此上面的for循环写法可以简化,代码如下:
scala> for(i<-str) println(i) h e l l o
Scala的嵌套循环比较简洁,例如以下代码,外层循环为i<‒1 to 3,内层循环为j<‒1 to 3 if (i!=j),中间使用分号隔开:
scala> for(i<-1 to 3;j<-1 to 3 if (i!=j)) println(j) 2 3 1 3 1 2
上述代码等同于以下Java代码:
for (int i = 1; i <= 3; i++) { for (int j = 1; j <= 3; j++) { if(i!=j){ System.out.println(j); } } }
2. while循环
Scala的while循环与Java类似,语法如下:
while(条件) { 循环体 }
例如以下代码:
scala> var i=1 i: Int = 1 scala> while(i<5){ | i=i+1 | println(i) | } 2 3 4 5
3. do while循环
与Java语言一样,do while循环与while循环类似,但是do while循环会确保至少执行一次循环。语法如下:
do { 循环体 } while(条件)
例如以下代码:
scala> do{ | i=i+1 | println(i) | }while(i<5) 2 3 4 5