多重循环(内循环和外循环)

47 阅读2分钟

函数首先进行内循环,随后进行外循环

eg:

for(i <- 1 to 5){
  //println(i)这句话会输出多少次?
  for(j <- 1 to 10) {
    println(i,j)//这句话会输出多少次?,50次
    //外循环5次,内循环10次,乘起来一共50次
  }
}

循环的换行

eg1:

for(i <- 1 to 5){// 行,一共有五行
  for(j <- 1 to 5) {
   print(i)//输出1111122222333334444455555,且不换行
  }
  println()//使用函数可换行
}

eg2: 将输出结果改为

1

22

333

4444

55555

``` for(i <- 1 to 5){// 行,一共有五行 for(j <- 1 to i) { print(i) } println() //把5改为i时,输出结果为: //1 //22 //333 //4444 //55555 } ``` ## 题目范例

eg1:公鸡一只5元,母鸡一只3元,小鸡3只一元,用100钱买三种鸡一共100只鸡可以买多少只?

//公鸡一只5
//母鸡一只3
//小鸡3只一元
//用100钱买三种鸡一共100只鸡
//输出结果为

for(x <- 0 to 20){
  for(y <- 0 to 33){
    var z =100 - x - y
    if(5*x + 3*y + z/3 ==100){
      println(x,y,z)
    }
  }
}

若小鸡的数量一定是3的倍数,则输出以下

for(x <- 0 to 20){
  for(y <- 0 to 33){
    var z =100 - x - y
    //小鸡的数量一定是3的倍数
    if(z%3==0 && 5*x + z/3 ==100 ){
      println(x,y,z)
    }
  }
}

九九乘法表

//九九乘法表
for(i <- 1 to 9){
  for(j <- 1 to 9){//将9改为i可以进行美观排序
  //  println(s"${j}x${i}=${i*j}")
   printf("%dx%d=%-3d", j, i, i*j)
    //%d 表示一个占位符,表示会以整数的格式输出对应的值
    //%-3d 表示一个占位符,表示会以整数的格式输出对应的值,这是数字占3个字符的宽度,左对齐
  }
  println()
}