scala流程控制

1、分支控制if-else

    分支控制有三种:单分支、双分支、多分支;

    1.1 单分支

        (1)、语法入下:

              if(条件表达式){

      执行代码块       //当条件表达式为true时,才会执行代码块内容

              }

    1.2 双分支

        语法入下:

              if(条件表达式){

      执行代码块       //当条件表达式为true时,才会执行代码块内容

              }else{

      执行代码块        //当条件表达式为false时,才会执行代码块内容

              }

    1.3 多分支

         语法入下:

              if( 条件表达式1 ){

      执行代码块1       //当条件表达式1 为true时,才会执行代码块1 内容

              }else  if( 条件表达式2 ){

      执行代码块2        //当条件表达式2 为true时,才会执行代码块2 内容

              }else  if( 条件表达式3 ){

      执行代码块3        //当条件表达式3 为true时,才会执行代码块3 内容

              }else{

      执行代码块4        //当条件表达式为false时,才会执行代码块4 内容

              }

    1.4 分支语句的返回值

         val result : Unit = if(条件表达式){

         执行代码块       //当条件表达式为true时,才会执行代码块内容

         }else{

     执行代码块        //当条件表达式为false时,才会执行代码块内容

         }    //结果返回() ;实际是返回代码块最后一行

         实现java中的三元运算符:(关系表达式) ? 表达式1:表达式2;

         scala实现:val res = if( age>18 ) "成年" else "未成年" ;

2、for循环

     2.1 范围遍历

          for (i <- 1 to 10){      // 底层就是对象的方法调用,相当于  for (i <- 1.to(10))   [1,10]

     println(i + "次遍历")     //从1到10 循环遍历

      }

          --------------------------------------------------------------

      for (i <- 1 until 10){      //  [1,10)  ,也可以用   for (i <- rang(1,10) )     

     println(i + "次遍历")     //从1到9 循环遍历

      }

  2.2 集合遍历

     for (i <- Array(1,10,12) ){     //for (i <- Set(1,10,12,33) )  for (i <- List(1,12,33) )

      println(i + "次遍历")     //输出的结果为:  1次遍历   10次遍历   12次遍历

    }   

    2.3 循环守卫(循环过滤

    Scala 可以在for循环中 使用一个或多个 if 语句来过滤一些元素

    for (a <- 1 to 10 if a != 2 ; if a < 4){

      println(a + "次循环")      //输出的结果为 : 1次循环 3次循环

    }

  2.4 循环步长

           

           

     注意:step 不能为0;可以为小数,但是不推荐用,可能会造成精度缺失;

     2.5 倒序遍历

           

  2.6 嵌套循环 

      

         例如:实现九九乘法表

         

         嵌套循环的格式也可以用一下的方式:

         

    2.7 引入变量 

         九层妖塔Scala单层循环实现:

        

       

  2.8 for循环返回值

         默认是空,即();个人理解是 因为关系表达式的值一致在变,返回值不确定是哪一个;

         val ints = for (a <- 1 to 5) yield a     

         //使用关键字 yield ,把变量相关的值放入集合中进行返回;用于对集合中的元素进行计算处理

3、while循环 

      while 和do......while的使用和java语言中完全相同

      3.1 while的用法  

      循环变量的初始化 

    while(循环条件)
    {
        循环体statement(s);
循环变量迭代; }

       

    3.2 do......while的用法     

      do {

          循环体statement(s);

       循环变量迭代;

       } while(循环条件);

       例如:

     

      

4、循环中断

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

     

     代码简化方式如下:

     

posted @ 2022-07-22 16:48  一直在寻找的路上  阅读(54)  评论(0编辑  收藏  举报