循环

58 阅读1分钟

for循环与while循环的区别:

  • ①.for循环用于确定循环次数的循环
  • ②.while循环用于不确定次数的循环

循环嵌套(即多重循环,一个循环里面还有一个循环)

  • eg:
object Base27 {
  def main(args: Array[String]): Unit = {
    var n=0
    var k=1
    for(i<-1 to 10){
      for(j<-5 to 20){
        for(k<-1 to 10) {
          n+=1
        }
        println(n,k,i,j)
        }
      }
    }
}
  • eg:
object Base28 {
  def main(args: Array[String]): Unit = {
    for(i<-1 to 5){
      for(j<-1 to i){
        print(i)
      }
      println()
    }
  }
}
  • eg:打印乘法口诀表
object Base29 {
  def main(args: Array[String]): Unit = {
    for(i<-1 to 9){
      for(j<-1 to i){
       // print(s"${j}*${i}=${i*j} ")
        printf("%d*%d=%-4d",j,i,i*j)
      }
      println()
    }
  }
}

注:

  • %d是表示占位符,这里要填入一个整数
  • %-4d表示一个占位符,这里要填入一个整数,并且:一共四五,左对齐
  • j:填入第一个 %d
  • i: 填入第二个整数 %d
  • i*j的结果:填入 %-4d

“百鸡百钱” 是中国古代数学家 张丘建 在《算经》中提出的问题,原文大意是:

公鸡 5 文钱一只,母鸡 3 文钱一只,小鸡 1 文钱三只。现在有 100 文钱,想买 100 只鸡。问:公鸡、母鸡、小鸡各买多少只?

object Base30 {
  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)
            }
          }

      }

    }
  }
}