scala学习笔记-scala的条件表达式、快表达式、循环语句(for,while)

1:scala中的条件表达式
  • 条件表达式就是if表达式,if表达式可以根据给定的条件是否满足,根据条件的结果(真或假)决定执行对应的操作。scala条件表达式的语法和Java一样。
//定义变量x
scala> val x =1
x: Int = 1

//if表达式
scala> val y =if(x>0) 1 else -1
y: Int = 1

//支持混合类型表达式
scala> val z=if(x>1) 1 else "error"
z: Any = error

//缺失else 相当于 if(x>2) 1 else ()
scala> val m=if(x>2) 1
m: AnyVal = ()

//scala中有个Unit类,用作不返回任何结果的方法的结果类型,相当于Java中的void,Unit只有一个实例值,写成()
scala> val n=if(x>2) 1 else ()
n: AnyVal = ()

//if(xx) else if(xx) else 
scala> val k=if(x<0) -1 else if (x==0) 0 else 1
k: Int = 1
2:scala中的块表达式
  • 定义变量时用 {} 包含一系列表达式,其中块的最后一个表达式的值就是块的值。
  • 在scala解释器中先输入 :paste ,然后写多行代码, 之后按ctrl+d结束输入
val x=0 
val result={
  val y=x+10
  val z=y+"hello"  
  val m=z+"scala"
    "end"
}
//result的值就是块表达式的结果    
//后期一个方法的返回值不需要加上return,把要返回的结果放在方法的最后一行就可以了 
3:循环
  • 在scala中,可以使用for和while,但一般推荐使用for表达式,因为for表达式语法更简洁
3.1:for循环
  • 语法结构
    	for (i <- 表达式/数组/集合){
    	    //表达式
    	}
    
  • 简单的for循环
    	//简单的for循环
    	scala> val nums= 1 to 10
    	scala> for(i <- nums) println(i)
    
    • 双重for循环
    	//双重for循环
    	scala>  for(i <- 1 to 3; j <- 1 to 3) println(i*10+j)
    	//双重for循环打印99乘法表
    	for(i <- 1 to 9; j <- 1 to i){
    	    print(i+"*"+j+"="+i*j+"\t")
    	     if(i==j){
    	       println()
    	    }    
    	}
    
    • 守卫:在for表达式中可以添加if判断语句,这个if判断就称为守卫
    	//语法结构
    	for(i <- 表达式/数组/集合 if 表达式) {
    	    // 表达式
    	}
    	
    	scala> for(i <- 1 to 10 if i >5) println(i)
    	6
    	7
    	8
    	9
    	10
    
    • for推导式:在for循环体中,可以使用yield表达式构建出一个集合,我们把使用yield的for表达式称之为推导式
    	// for推导式:for表达式中以yield开始,该for表达式会构建出一个集合
    	
    	val v = for(i <- 1 to 5) yield i * 10
    
3.2:while循环
  • 语法结构
    while(返回值为布尔类型的表达式){
        //表达式
    }
    
  • 示例
    scala> var x = 10
    x: Int = 10
    
    scala> while(x >5){
         | println(x)
         | x -= 1
         | }
    10
    9
    8
    7
    6
    
发布了40 篇原创文章 · 获赞 59 · 访问量 1387

猜你喜欢

转载自blog.csdn.net/qq_26719997/article/details/105222963
今日推荐