博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Scala中的If判断&While&For循环
阅读量:6243 次
发布时间:2019-06-22

本文共 3083 字,大约阅读时间需要 10 分钟。

 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/else12    */13   def judge1(x:Int) = {14     val c = if(x > 0) 1 else "superman"15     c16   }17 18   /*19    * scala在做分层判断时,必须要把每一种可能性都判断好20    */21   /*22   def judge2(x: Int) = {23     if(x>0){24       125     }else if(x<0){26       -127     }else{ //这种情况下和Java没有任何的区别.28         029     }30   }31   */32     def judge2(x: Int) = {33     if(x>0){34       135     }else if(x<0){36       -137     }38         0//这个0是无论x是什么样的值都会走的.最后的返回值都是此处的039   }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 * 1103 * 4104 * 7105 * 10106 */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 }

 

转载于:https://www.cnblogs.com/DreamDrive/p/5645377.html

你可能感兴趣的文章
java以流的形式输出文件
查看>>
『PyTorch』第十三弹_torch.nn.init参数初始化
查看>>
linux 查找目录下的文件内容并替换(批量)
查看>>
iphone遮住听筒/感应器/摄像头黑屏的解决办法
查看>>
python 抓取alexa数据
查看>>
UART、SPI和I2C详解
查看>>
兼容N多浏览器的CSS阴影效果
查看>>
Multiple arguments in Django template filters
查看>>
ARM11-Linux2.6-Button-Driver-Base-info
查看>>
抽屉Panel的研究
查看>>
In-App Purchase
查看>>
深圳it公司
查看>>
glog 使用中存在的问题
查看>>
WCF, the Service attribute value in the ServiceHost directive could not be found.
查看>>
Scriptcase价格调整(五折销售)
查看>>
【转】 编写C#调用的C++DLL
查看>>
Programming Concepts
查看>>
【Linux】用grep在文档中查找内容
查看>>
音视频编码格式和封装格式的关系和区别是什么?
查看>>
ORACLE 表空间使用率查询
查看>>