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 }
本文转自SummerChill博客园博客,原文链接:http://www.cnblogs.com/DreamDrive/p/5645377.html,如需转载请自行联系原作者