用Scala开发语言 编写简单的循环实例题

import scala.util.control.Breaks._

object Test05 {
  def main(args: Array[String]): Unit = {
    //    for (i <- 1 to 9){
    //      for (j <- 1 to i){
    //        print(s"$i * $j = ${i*j} \t")
    //      }
    //      println()
    //    }

    // continue:  跳出本轮循环,进入下一轮
    // break :    跳出整个循环
    // breakable 写在循环外部
//    breakable {
//      for (i <- 1 to 10) {
//        if (1 % 3 == 0) {
//          //continue
//          break
//        } else {
//          println(i)
//        }
//      }
//    }

    // continue:  跳出本轮循环,进入下一轮
    // 在scala中,没有continue这个字!
    // break :    跳出整个循环
    for (i <- 1 to 10) {
      // 如果遇到了能被3整除的数,就跳出循环
      breakable {
        if (1 % 3 == 0) {
          //continue
          break
        } else {
          println(i)
        }
      }
    }

    println("------------------------------任务1----------------------------------")
    //任务1: 打印数字1~100,每行包括一组5个数,每组换行
    for (i <- 1 to 100) {
      print(s"$i ")
      if (i % 5 == 0) println()
    }

    println("------------------------------任务2----------------------------------")
    //任务2: 输入一个正整数n,输出斐波那契数列的前n项
    def fibonacci(n: Int): List[BigInt] = {
      @scala.annotation.tailrec
      def loop(n: Int, prev: BigInt, current: BigInt, acc: List[BigInt]): List[BigInt] = {
        if (n == 0) acc
        else loop(n - 1, current, prev + current, current :: acc)
      }

      if (n <= 0) Nil
      else loop(n, 0, 1, Nil).reverse
    }

    // 示例调用
    val n = scala.io.StdIn.readInt()
    val fibSeries = fibonacci(n)
    println(fibSeries.mkString(", "))


    println("------------------------------任务3----------------------------------")
    //任务3: 输入一个正整数n,输出一个高度为n的等腰三角形
    def printTriangle(m: Int): Unit = {
      val m = scala.io.StdIn.readInt()
      for (i <- 1 to m) {
        print(" " * (m - i)) // 打印左侧空格
        print("*" * (2 * i - 1)) // 打印星号
        println()
      }
    }

    // 示例调用
    val m = scala.io.StdIn.readInt() // 假设输入的正整数为5
    printTriangle(n)
  }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值