scala的for语句

59 阅读1分钟

for语句

object z7 {
  def main(args: Array[String]): Unit= {
    for(i <- 1 to 5){
      println(i) //运行5次
      for(j <- 1 to 10) {
        println(i,j)//运行50次
      }
    }
  }
}

习题

1.输出

  • println("1")
  • println("22")
  • println("333")
  • println("4444")
  • println("55555")
object z8 {
  def main(args: Array[String]): Unit= {
    for(i <- 1 to 5){
      for (j <- 1 to i){
        print(i)
      }
      println()
    }
  }
}

2.

  • 公鸡1只,价格5钱
  • 母鸡1只,价格3钱
  • 小鸡3只,价格1钱
  • 用100钱买100只鸡,求公鸡,母鸡,小鸡各几只
object z9 {
  def main(args: Array[String]): Unit= {
    /*
    *假设 公鸡 x
    *    母鸡 y
    *    小鸡 z
    *
    *     5x + 3y + z/3 = 100
    *     x +y + z = 100
    *
    *     暴力求解
    *     0<= x <= 100
    *     0<= y <= 100
    *     0<= z <= 100 === 100 - x - y
    *
    *     x,y,z  →  (0,0,100) 代入验算(1)是否成立
    *     x,y,z  →  (0,1,99) 代入验算(1)是否成立
    *     x,y,z  →  (0,2,98) 代入验算(1)是否成立
    *
    */
    for(x <- 0 to 20){
      for(y <- 0 to 33){
        var z = 100 - x - y
        if(5*x + 3*y + z/3 == 100){
          println(x,y,z)
        }
      }
    }
  }
}

3.

制作九九乘法表

object z10 {
  def main(args: Array[String]): Unit= {
    for(i <- 1 to 9){
      for(j <- 1 to i) {
//        printf(s"${j}×${i}=${i*j}")
        printf("%d×%d=%-5d", j, i, i*j)
        //%d   表示一个占位符,表示会以整数的格式输出对应的值
        //%3d  表示一个占位符,表示会以整数的格式输出对应的值
      }
      println()
    }
  }
}