• Scala——While和do..While循环控制


    目录

    While循环控制

    do..While循环控制

    循环中断


    While循环控制

    基本语法

    循环变量初始化

    while(循环条件){

                循环体(语句)

                循环变量迭代

    }

    说明:

    (1) 循环条件是返回一个布尔值的表达式

    (2) while循环是先判断再执行语句

    (3)与for语句不同,while语句没有返回值,即整个while语句 的结果是Until类型()

    (4) 因为while中没有返回值,所以当要用该语句来计算并返回结果时,就不可避免的使用变量,而变量需要声明在while循环的外部,那么就等同于循环的内部对外部的变量造成了影响,所以不推荐使用,而是推荐使用for循环。

    案例实操 

    1. package Chapter04
    2. object Test_05WhileLoop {
    3. def main(args: Array[String]): Unit = {
    4. var a = 1
    5. while (a <= 10) {
    6. print("a=" + a + ",")
    7. a+=1
    8. }
    9. println()
    10. var b = 1
    11. while (b <= 10) {
    12. print("b=" + b + ",")
    13. b+=1
    14. }
    15. }
    16. }

    运行结果

     

    do..While循环控制

    基本语法

    循环变量初始化;

    do {

          循环体(语句)

          循环变量迭代

    }while(循环条件)

    说明:

    (1)循环条件是返回一个布尔值的表达式

    (2)do..while循环是先执行,再判断

    案例实操

    1. package Chapter04
    2. object Test_05WhileLoop {
    3. def main(args: Array[String]): Unit = {
    4. var c = 1
    5. do{
    6. print("c=" + c + ";")
    7. c += 1
    8. }while(c<=10)
    9. println()
    10. var d = 10
    11. do{
    12. print("d=" + d + ";")
    13. d -= 1
    14. }while(d>=1)
    15. }
    16. }

    运行结果

    循环中断

     基本说明:

    Scala内置控制特地去掉了break和continue,是为了更好的适应函数式编程,推荐使用函数式的风格解决break和continue的功能,而不是一个关键字。Scala中使用breakable控制结构来实现break和continue功能。

    案例实操

    1、采用异常的方式退出循环

    2、采用 Scala 自带的函数,退出循环

    3、对 break 进行省略   // 把Breaks下所有属性和方法引入import scala.util.control.Breaks._

    4、循环遍历 10 以内的所有数据,奇数打印,偶数跳过(continue)

    1. package Chapter04
    2. import scala.util.control.Breaks
    3. import scala.util.control.Breaks._
    4. object Test_06break {
    5. def main(args: Array[String]): Unit = {
    6. //1、采用抛异常的方式,退出循环
    7. try {
    8. for (i <- 0 until 5){
    9. if (i ==3)
    10. throw new RuntimeException
    11. println(i)
    12. }
    13. }catch {
    14. case e: Exception => //什么都不做,只是退出循环
    15. }
    16. println("--------------")
    17. //2、使用Scala中的Breaks类的break方法,实现异常的抛出和捕捉
    18. Breaks.breakable(
    19. for (i <- 0 until 5){
    20. if (i ==3)
    21. Breaks.break()
    22. println(i)
    23. }
    24. )
    25. println("----------------")
    26. breakable(
    27. for (i <- 0 until 5){
    28. if (i ==3)
    29. break()
    30. println(i)
    31. }
    32. )
    33. println("----------------")
    34. for (a <- 1 to 10 ){
    35. if (a % 2 == 1) println("a=" + a )
    36. }
    37. println("----------------")
    38. for (a <- 1 to 10 ){
    39. if (a % 2 == 1) println("a=" + a )
    40. else println("contiune")
    41. }
    42. println("这是循环外的代码")
    43. }
    44. }

    运行结果

     

  • 相关阅读:
    qemu的详细资料大全(入门必看!!!)
    [C/C++]数据结构----顺序表的实现(增删查改)
    Git相关配置及问题解决
    虹科示波器 | 汽车免拆检修 | 1994款凯迪拉克fleetwood车发动机无法起动
    Gateway网关简介以及使用
    elasticsearch-exporter部署手册
    Linux中shell外壳,用户权限,文件权限
    传感模块:MATEKSYS Optical Flow & LIDAR 3901-L0X
    输入一个日期,包括年、月和日,计算该日期是这一年的第几天
    【图像去雾】Matlab实现9种去雾图像评价
  • 原文地址:https://blog.csdn.net/qq_70085330/article/details/126202013