Scala的for语句

79 阅读3分钟

for语句

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

for语句练习1

用for语句输出: 1 22 333 4444 55555

object work25 {
  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()  // 换行
    }
  }
}

输出结果是:

11111 
22222 
33333 
44444 
55555
object work25 {
  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()  // 换行
    }
  }
}

改变代码使输出结果为:

11111
2222 
333 
44 
5
object work25 {
  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()  // 换行
    }
  }
}

for语句练习2

公鸡(鸡翁) 1只,价钱为5钱; 母鸡(鸡母) 1只,价钱为3钱; 小鸡(鸡雏) 3只,价钱为1钱(即1钱买3只小鸡); 求用100钱买100只鸡,问公鸡、母鸡、小鸡各有多少只;

object work26 {
  def main(args: Array[String]): Unit = {
    /**
     *
     *  假设 公鸡 x
     *      母鸡 y
     *      小鸡 z
     *      
     *      5x + 3y + z/3 == 100   (1)
     *      x + y + z == 100       (2)
     *      
     *      暴力求解
     *      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) 是否成立
     *      x,y,z →  (0,3,97) 代入验算(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)
        }
      }
    }
  }
}

for语句练习3

用far语句输出乘法口诀表:

object work27 {
  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=%-3d", j,i,i*j)
       //%d 表示一个占位符,表示会以整数的格式输出对应的值。
       //%3d 表示一个占位符,表示会以整数的格式输出对应的值。这是数字占3个字符的宽度,左对齐。
     }
     println()
   }
  }
}

输出结果:

1=12=2  2×2=43=3  2×3=6  3×3=94=4  2×4=8  3×4=12 4×4=165=5  2×5=10 3×5=15 4×5=20 5×5=256=6  2×6=12 3×6=18 4×6=24 5×6=30 6×6=367=7  2×7=14 3×7=21 4×7=28 5×7=35 6×7=42 7×7=498=8  2×8=16 3×8=24 4×8=32 5×8=40 6×8=48 7×8=56 8×8=649=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