zoukankan      html  css  js  c++  java
  • Scala中的If判断&While&For循环

     If 判断: 

     

     1 object TestScalaIf {
     2   def main(args: Array[String]): Unit = {
     3     
     4 //    val resutlt = judge1(-100)
     5 //    println(resutlt)
     6     
     7     val resutlt2 = judge2(100)
     8     println(resutlt2)
     9   }
    10   /*
    11    * scala中不存在三元运算符,使用if/else
    12    */
    13   def judge1(x:Int) = {
    14     val c = if(x > 0) 1 else "superman"
    15     c
    16   }
    17 
    18   /*
    19    * scala在做分层判断时,必须要把每一种可能性都判断好
    20    */
    21   /*
    22   def judge2(x: Int) = {
    23     if(x>0){
    24       1
    25     }else if(x<0){
    26       -1
    27     }else{ //这种情况下和Java没有任何的区别.
    28         0
    29     }
    30   }
    31   */
    32     def judge2(x: Int) = {
    33     if(x>0){
    34       1
    35     }else if(x<0){
    36       -1
    37     }
    38         0//这个0是无论x是什么样的值都会走的.最后的返回值都是此处的0
    39   }
    40   
    41 }

    While和For循环:

    循环(while、for) 如果需要倒叙输出,后面加reverse

     

      如果修改步长,可以使用守卫方法,即在生成式后面加一个boolean判断,符合条件的输出

     

     修改步长更简单的方式如下,to后面使用括号,括号中第二个参数表示步长

     

    支持类似于java的双重for循环,在scala中只需要一个for即可

     

    使用for推导式,可以把结果保存起来

    看代码:

      1 object TestScalaFor {
      2   def main(args: Array[String]): Unit = {
      3     /*while循环*/
      4 //    while(true){
      5 //      println(12)
      6 //    }
      7     
      8     /*for循环*/
      9     //之前Java中的for循环的写法
     10     /*普通的for循环
     11      *for(int i=0;i<5;i++){
     12      *
     13      *}
     14      */
     15     
     16     /*增强for循环
     17      *for(List i: list){
     18      * 
     19      * } 
     20      */
     21     
     22     for( i <- 1 to 10){//这个是闭区间
     23       println(i)
     24     }
     25     /*
     26      * 输出结果:
     27      * 1
     28      * 2
     29      * ....
     30      * 10
     31      */
     32     
     33     /*
     34      * println(1 to 10)
     35      * println(1.to(10))
     36      * 这两个打印出来的是 Range(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
     37      * to是一个方法.按F3可以直接进入该方法.
     38      */
     39     
     40     for(i <- 1 until 10){//开区间 前闭后开 通常用于遍历数组
     41       println(i)
     42     }
     43     /*
     44      * 输出结果:
     45      * 1
     46      * 2
     47      * ...
     48      * 9
     49      */
     50     
     51     for(i <-(1 to 10).reverse){//倒序输出
     52       println(i)
     53     }
     54     /*
     55      * 输出结果
     56      * 10
     57      * 9
     58      * ....
     59      * 1
     60      */
     61     
     62     for(i <- "superman"){//遍历字符串
     63       println(i)
     64     }
     65     /*
     66      * 输出结果:
     67      * s
     68      * u
     69      * ....
     70      * n
     71      */
     72     
     73     /*高级for循环*/
     74     for( i <- 1 to 10 ;if i % 2 == 0){//更改步长为2.";" 这个情况下可以加也可以不加
     75       println(i)
     76     }
     77     /*
     78      * 输出结果:
     79      * 2
     80      * 4
     81      * ...
     82      * 10
     83      */
     84     
     85     for( i <- 1 to 10 reverse;if i % 2 == 0){//";" 这个情况下必须加上,否则编译不通过.
     86       println(i)
     87     }    
     88     /*
     89      * 输出结果
     90      * 10
     91      * 8
     92      * ...
     93      * 2
     94      */
     95     
     96     /*改变步长的第二种方式*/
     97     for(i <- 1 to (10,3)){//改变步长方式二
     98       println(i)
     99     }
    100     /*
    101      * 输出结果:
    102      * 1
    103      * 4
    104      * 7
    105      * 10
    106      */
    107     
    108     //通过yield将一个集合转换成为另外一个集合的方法叫for的推导式
    109     val c = for(i <- 1 to 10) yield { i + 1}
    110     println(c)
    111     /*
    112      * 输出结果:
    113      * Vector(2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
    114      */
    115     
    116     for(i <- 1 to 10 ; j <- 1 to 5){//双重for循环
    117       println(i + "---->" +j)
    118     }
    119   }
    120 }
  • 相关阅读:
    Java之内部类
    java之对象的前世今生
    java之继承
    java之接口
    何为大学 大学何为?
    丁香般的姑娘
    MySQL创建数据库与创建用户以及授权
    CentOS6.8手动安装MySQL5.6
    linux 修改myql 编码配置等信息参考
    Centos6.8 Mysql5.6 安装配置教程
  • 原文地址:https://www.cnblogs.com/DreamDrive/p/5645377.html
Copyright © 2011-2022 走看看