多重循环

68 阅读1分钟

1.基本格式

    //循环嵌套
    //多重循环,循环里面还有循环


    var n = 0
    for(i <- 1 to 10){  //10
      //println(i)  //执行几次? 10
      for(j <- 5 to 20){   //16

        for(k <- 1 to 10){
          n += 1
          println(n, k, i, j)//会执行几次?  10*1

        }
      }
    }

2.输出特殊图形

1

22

333

4444

55555

    for(i <- 1 to 5){
      for(j<- 1 to i){
        print(i)
      }
      println() //换行
    }

3.打印乘法口诀表

image.png

    for(i <- 1 to 9){
      for(j <- 1 to i){
       // print(s"${j}×${i}=${i*j} ")

        printf("%d×%d=%-4d",j,i, j*i)
      }
      println()
    }

%d是表示占位符,这要填入一个整数

%-4d表示一个占位符,这要填入一个整数,并且:一共四位,左对齐

4.循环的百鸡百钱问题

公鸡1只,价格5元一只;

母鸡1只,价格3元一只;

小鸡3只,价格1元买3只小鸡;

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

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