Scala的循环结构-for嵌套

52 阅读2分钟

结构:

for ( 循环变量 <- 数据集) {  
  for(){  
    for(){  
    }  
  }  
}

说明:

1.for可以替换成while循环。

2.循环的嵌套可以有多个,数量不限。

3.里外层循环执行的次数不相同。

案例一:

object day5 {
  def main(args:Array[String]): Unit = {
    var k = 0 //这里的k在这里的作用是记录输出的次数
    for(i <-0 to 5){ //外层循环
     println(i)   // 输出几次?它由那个循环变量的值所决定?
      for(j <-11 to 20){ //内层循环
        k =k+1
        println(k,i,j)
      }
    }
  }
}

案列二:

要求输出宝塔数,如:
1
22
333
4444
55555

object day51 {
  def main(args:Array[String]): Unit = {
    for(i <-1 to 5){
      for(j <- 1 to i ){
        print(i)
      }
      println()
    }
   }
  }

案列三:

要求输出倒宝塔数,如:

    55555
    4444
    333
    22
    1
object day51 {
  def main(args:Array[String]): Unit = { 
    for(i <-5 to 1 by -1){ // 这里的i 是由5依次递减1位数到1所得的
      for(j <- 1 to i ){ //  j的范围由i决定的
        print(i)
      }
      println()
    }
  }
}

案列四:

object day52 {
  def main(args:Array[String]): Unit = {
    /*/
    请输出九九乘法表!
     */
    for(i <-1 to 9){
      for(j <-1 to i){
        printf("%d×%d=%-4d",j,i,i*j)
      }
      println()
    }
  }
}

%d:占位符,会输出一个整数

*%-4d:占位符,会输出一个整数,一共占据4个字符的空间大小,左对齐!

%4d:占位符,会输出一个整数,一共占据4个字符的空间大小,右对齐!

案列五:

“百鸡百钱”是一个经典的数学问题,最早见于中国古代数学著作《张丘建算经》。其原文如下: 鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何? 翻译成现代语言:

公鸡(鸡翁)1只,价格5钱;

母鸡(鸡母)1只,价格3钱;

小鸡(鸡雏)3只,价格1钱(即1钱买3只小鸡);

用100钱买100只鸡,问公鸡、母鸡、小鸡各有多少只?

for(gj <- 1 to 20) {  
  for(mj <- 1 to 33){  
    val xj = 100 - gj - mj  
    if(xj % 3 == 0 && 5*gj + 3*mj + xj/3 == 100){  
        println(gj, mj, xj)  
    }  
  }  
}