内建控制-多重循环

50 阅读1分钟

(一)多重循环的基本使用

【格式】

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

说明:

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

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

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

[编码示例]: image.png

(二)案例1:打印乘法口诀表

[编码示例]: image.png

(三)案例2:输出特殊图形

编写代码打印输出如下图形:

1

22

333

4444

55555

[编码示例]: image.png

(四)案例3:百鸡百钱问题

[编码示例]:

object base30 {
  def main(args: Array[String]): Unit = {
    //百鸡百钱
    /**
     * 设公鸡x,母鸡y只,小鸡是 100-x-y。
     * 同时 0<= x <=20,0<=y<=33
     *
     * 5x + 3y +(100-x-y)/3 = 100   (1)
     *
     * 暴力求解
     * 1. (0,0,100) 代入(1)看看是否成立;
     * 2. (0,1,99) 代入(1)看看是否成立;
     * ...
     * 34. (0,33,37) 代入(1)看看是否成立;
     */
    var k = 0
    for (x <- 0 to 20){
      for (y <- 0 to 33){
        val z = 100 - x - y
        //代入(1)
        if(5*x + 3*y + z/3 == 100){
          k += 1
          println(k,x,y,z)
        }
      }
    }
  }
}