1.if是有返回值的,根据括号中的条件决定返回值
2.if条件表达式中可进行类型的推导,在复杂算法中时可省略变量类型的书写,为复杂算法提供便利
3.如果else后面没有内容,则默认if()..else (),()是为空的意思
4.if表达式中有多条语句需用{}封装,而且最后一条才是返回的结果
5.补充说明:{..}语句块是有值的,而且值是最后一条语句,值类型也是最后一条语句值的类型
package kang
/* main:方法名
* args:参数名
* Array[String]:参数类型
* Unit:方法返回值,Unit相当于java中的void
*
*
* 1.if是有返回值的,根据括号中的条件决定返回值
* 2.if条件表达式中可进行类型的推导,在复杂算法中时可省略变量类型的书写,为复杂算法提供便利
* 3.如果else后面没有内容,则默认if()..else (),()是为空的意思
* 4.if表达式中有多条语句需用{}封装,而且最后一条才是返回的结果
* 5.补充说明:{..}语句块是有值的,而且值是最后一条语句,值类型也是最后一条语句值的类型
* 6.
* * */
object scala_controller {
def main(args: Array[String]): Unit = {
var n1=5
var s1="hello Spark"
var flag=true
var result = if(n1>3) "big" else "small"//if返回String类型
var result2 = if(n1>3) "big" else 1 //if返回Any类型
var result3 = if(n1>3) "big" else None//if返回Object类型
var result4 = if(n1>3) "big" else //如果不写,默认为 () ,跟None一个意思,但是None extends Option,所以这里if返回Any类型
//for循环的方式和java有点不同,具体看下面的
//for里面的if是条件守卫,用于限制for循环(优化for循环,去掉不必要的步骤),或者用于跳出for循环
for(i <- 0 to 5 if i%2==0){
println("a"+i)
}
for(i <- 0 to 5 if flag){
println("b"+i)
if (2==i) flag=false
}
//字符串默认切割成一个一个字符,作为item的数组值
for(item <- s1){
println("c"+item)
}
//自己定义字符串切割方式,作为item的数组值,这里定义切割空格
for(item <- s1.split(" ")){
println("c"+item)
}
//如果要是用break,需要导包后将代码放进breakable{}中,一般不这样用,直接if流程控制
import scala.util.control.Breaks._
breakable{
for(i <- 0 to 9){
if(i==5){
println(i)
break
}
}
}
}
}