循环

30 阅读1分钟

一、循环的嵌套

1.for可以替换成while循环

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

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

object iphone4pro {
  def main(args: Array[String]): Unit = {
    var n = 0
    for(i <- 1 to 10){
      for(j <- 5 to 20){
        for(k <-1 to 10){
          n +=1
          println(n,k,i,j)
        }
      }
    }
  }
}

例题、编写代码打印输出如下图形:

1

22

333

4444

55555

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

例题、如何输出乘法口诀表

两种方法

object iphone4plus {
  def main(args: Array[String]): Unit = {
    for(i <- 1 to 9){ //控制有几行
      for(j <- 1 to i){ //控制具体每一行上的内容
        print(s"${j}*${i}=${i*j} ")
      }
      println()
    }
  }
}
object iphone4plus {
  def main(args: Array[String]): Unit = {
    for(i <- 1 to 9){ //控制有几行
      for(j <- 1 to i){ //控制具体每一行上的内容
        printf("%d*%d=%-4d",j,i, i*j)
//        print(s"${j}*${i}=${i*j} ")
      }
      println()
    }
  }
}

例题、"百鸡百钱" 是中国古代著名的数学问题,题意是:用 100 文钱买 100 只鸡,其中公鸡 5 文钱一只,母鸡 3 文钱一只,小鸡 1 文钱 3 只。问公鸡、母鸡、小鸡各买多少只?

object iphone5 {
  def main(args: Array[String]): Unit = {
    var k = 0
    for(gj <- 0 to 100){
      for(mj <- 0 to 100){
        var xj = 100 -gj -mj
        if(xj>=0){
          if(gj*5+mj*3+xj/3 ==100 && xj%3 ==0){
            k+=1
            println(k,gj,mj,xj)
          }
        }
      }
    }
  }
}