scala : 循环的嵌套使用

58 阅读2分钟

多重循环的基本使用

1.多重循环的定义:

1.1for可以替换成while循环

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

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

例1.:

object basic18 {
  def main(args: Array[String]): Unit = {
   for (i<-1 to  5){
     println(i)// 这句话会输出多少次?
     for (j<-1  to 10){
       println(i,j)// 这句话会输出多少次?
       
       
       }
     }
   }

  
}

4.输出特殊图形

例(1):

object basic19 {
  def main(args: Array[String]): Unit = {
//   println("1")
//    println("22")
//    println("333")
//    println("4444")
//    println("55555")

    for (i<-1 to  5){// 行: 一共有五行
      for (j<-1 to  i){// 具体一行中输出什么内容?
        print(i)
      }
      println()// 换行
    }
  }
}

例(2):

object basic20 {
  def main(args: Array[String]): Unit = {
    //   println("11111")
    //    println("2222")
    //    println("333")
    //    println("44")
    //    println("5")

    for (i<-1 to  5){// 行: 一共有五行
      for (j<-i to  5){// 具体一行中输出什么内容?
        print(i)
      }
      println()// 换行
    }

  }
}

5.求解百鸡百钱问题

object basic21 {
  def main(args: Array[String]): Unit = {
   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)
       }
     }
   }

  }
}

6.乘法口诀

object basic22 {
  def main(args: Array[String]): Unit = {
    for (i<-1 to  9){
      for (j<-1  to  i) {

       // println(s"${j}*${i}=${i*j}")
        printf("%d*%d=%-3d",j,i,i*j)
        // %d 表示一个占位符,表示会以一个整数的格式输出对应的值。
        // %-3d   表示一个占位符,表示会以整数的格式输出对应的值,这是数字站三个字符的宽度,左对齐。
      }
      println()
    }
  }

}


/**
1*1=1  
1*2=2  2*2=4  
1*3=3  2*3=6  3*3=9  
1*4=4  2*4=8  3*4=12 4*4=16 
1*5=5  2*5=10 3*5=15 4*5=20 5*5=25 
1*6=6  2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 
1*7=7  2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 
1*8=8  2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 
1*9=9  2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
*/