Scala的多重循环

71 阅读1分钟

for的基本嵌套使用

1. 多重循环的定义:

1.1 for循环可替代成while循环

1.2 循环的嵌套可以有多个,不限数量

1.3 里外层的循环执行的次数是不同的,算总循环次数用乘法将每次循环次数乘起来

2.下面是多重循环的例子

2.1 第一个例子:嵌套循环可以循环多少次

for(i <- 1 to 5){
  //println(i)//这句话输出多少次? 5次
  for(j <- 1 to 10){
    println(i,j)  //这句话输出多少次? 50次(5*10)
  }
}

2.2 第二个例子:用代码输出下面例子

//    1
//    22
//    333
//    4444
//    55555
    for(i <- 1 to 5){  //行,一共5行
      for(j <- 1 to i){ //具体一行输出什么内容
        print(i)
      }
      println() //换行
    }

2.3 第三个例子:算价钱问题

//公鸡1只,价格5钱;母鸡1只,价格3钱;小鸡3只,价格1钱;用100钱买100只鸡,问公鸡、母鸡、小鸡各有多少只?
for(x<- 0 to 20){
  for(y<- 0 to 33){
    var z= 100-x-y
    //小鸡的数量一定是3的倍数
    if(z%3==0 && 5*x+3*y+z/3 == 100){
      println(x,y,z)
    }
  }
}

2.4 第四个例子:输出一个像图表一样的九九乘法表

//输出九九乘法表
for(i <- 1 to 9){
  for(j <- 1 to i){
    printf("%d*%d=%-3d",j,i,i*j)
  }
  //%d    表示一个占位符,表示会以整数的格式输出对应的值。
  //%3d   表示一个占位符,表示会以整数的格式输出对应的值,这是数字占3个字符的宽度,左对齐。
  println()
}