【scala】循环

1.while循环

  Scala的while循环跟其他语言并没有很大差别。

var i = 0;
while(i<args.length){
     println(i);
     i+=1;         
}

  Scala也有do-while循环,只不过他是在循环体之后执行条件检查而不是在循环体之前。

var i = 0;
do{
      println(i);
      i+=1;    
}while(i<args.length)    

2.for循环

  (1)通过arg <- args 这样生成器语法,遍历args的元素。

for(arg <- args){
    println(arg);
}    

  (2)还可以用for遍历range

for(i <- 1 to 5)//包含5
    println(i);

for(i <- 1 until 5)//不包含5
    println(i);

  (3)还可以给for表达式添加过滤器,过滤要遍历的集合,过滤器是for表达式的圆括号中的if子句

for(file <- filesHere if file.isFile)
    println(file);

  (4)嵌套循环,添加多个<-子句可以得到嵌套循环。

for(i <- 1 to 3){
     for(j <- 4 to 6) {
             println(i +" "+ j)  
     } 
}
 
for(i <- 1 to 3;j <- 4 to 6)    //这两种方式是等效的
   println(i +" "+ j)

下面是在嵌套循环中使用 if

for(i <- 1 to 3 if(i!=2);j <- 4 to 6 if(j!=5))
   println(i +" "+ j)                  

  (5)我们可以使用yield关键字把for循环的每次迭代生成一个可以被记住的值。

  语法:for 字句 yield 代码体

for{
      file<-filesHere  
}yield file 

  for表达式的代码体每次被执行,都会产生一个值,当for循环执行完毕后,其结果将包含所有值,包含在一个集合当中

原文地址:https://www.cnblogs.com/zzhangyuhang/p/8654446.html