多重循环

61 阅读1分钟

1.多重循环的基本使用

bject t24 {
  def main(args: Array[String]): Unit = {
//循环嵌套
//多重循环,循环里面还有循环
    var n = 0
    for(i <- 1  to 10){//10
      //
      for(j <- 1  to 10)//10
        for(k <- 1  to 10){//16
          n += 1
          println( n,k,i,j)//会执行几次?10*1
        }
      }
    }
}

2.输出特殊图形 1 22 333 4444 55555

object t25 {
  def main(args: Array[String]): Unit = {
     for( i <- 1  to 5){ //控制有几行
       for(j <- 1  to i) { //控制具体每一行上的内容
         print(i)//不换行
       }
       println()//换行
       }
     }
}

3.打印乘法口诀表

object t26 {
  def main(args: Array[String]): Unit = {
     for( i <- 1  to 9){ //控制有几行
       for(j <- 1  to 9) { //控制具体每一行上的内容
//         print(s"${j}×${i}=${i×j}")//不换行
// %d 表示占位符,这儿要填入一个整数
// %-4d 表示一个占位符,这儿要填入一个整数,并且:一共四位,左对齐

// i 填入第一个%d
// j 填入第二个%d
//  i*j的结果,填入%-4d 
         printf("%db×%d=%-4d",j,i, i×j)
       }
       println()//换行
       }
     }
}

4.循环的百鸡百钱的问题

object t27 {
  def main(args: Array[String]): Unit = {
 //公鸡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){ //小鸡的数量不能为并且是3的倍数
         if(gj*5 + mj*3 + xj/3 == 100){ //如果合计是100元
           k += 1
           println(k ,gj ,mj,xj)
          }
        }
      }
    }

  }
}