• 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. }

    运行结果

     

  • 相关阅读:
    NOIP2006-2018 提高组 初赛试题完善程序题 CSP-S 2019 2020 初赛试题完善程序题
    如何学习一个大型分布式Java项目
    交换网络----三种生成树协议
    使用Android原生制作毛玻璃效果图片
    【运维知识高级篇】超详细的Jenkins教程3(Maven项目上线全流程)
    Shell 相对路径转换为绝对路径
    基于Python的接口自动化-构建mock接口服务
    手机上免费更改地址大全
    spring 只读事务 设置异常回滚事务
    米尔AM62x核心板,高配价低,AM335x升级首选
  • 原文地址:https://blog.csdn.net/qq_70085330/article/details/126202013