packagecom.learn.scala
importscala.util.control.Breaks._
/**
* scala 第三天
* Created by zhuqing on 2017/2/22.
*/
objectDay3 {
defmain(args: Array[String]): Unit = {
/**
* scala的if else 与java中的类似 ,但不同的是scala的有返回值(最后一个表达式的返回值)
*/
valcondition: Int =1;
vara =if(condition ==1) {
"hello"
"world"
}else{
100
}
println(a);//打印world
/**
* 没有可以执行的表达式时,返回Unit(类似Java的void)
*/
varb =if(condition !=1) {
"hello"
}
println(b)//打印()
/**
* {}语句块与Java类似, 但是可以有返回值
*/
varc = {
"hello"
100
"I love you"
}
println(c)//打印I love you
/**
* scala 循环,for
*/
varsum =0
//i 变量,1 to 10 返回Rang
for(i <-1to10) {
sum += i
}
println(sum);//打印1到10的和
/**
* for 没有break,如果想用需要使用breakable,需要时先导入import scala.util.control.Breaks._
*/
sum =0
for(i <-1to10) {
breakable {
if(i ==6) {
break;
}
sum += i
}
}
println(sum)//1到5的和
/**
* for 的嵌套 不像Java的for循环嵌套需要写多个for,而是在一个for循环内用分号隔开多个遍历。
*/
//for两层嵌套
for(i <-1to3; j <-1to3){
print("("+i+","+j+") ")
}
println()
//打印//(1,1) (1,2) (1,3) (2,1) (2,2) (2,3) (3,1) (3,2) (3,3)
//for三层嵌套
for(i <-1to3; j <-1to3;m <-1to3){
print("("+i+","+j+","+m+") ")
}
println()
/**
* for循环的守卫
*/
//if 判断为TRUE 时执行
for(i <-1to10ifi %2==0){
print(i +" ")//打印2 4 6 8 10
}
println()
/**
* for循环 ,yield 生成新的集合 , yield 后面加单条语句,或语句块
*/
valvector =for(i <-1to10ifi %2==0)yield{
vara = i*2
a+"MB"
}
println(vector)//Vector(4MB, 8MB, 12MB, 16MB, 20MB)
/**
* while 和 do ...while循环与java的类似
*/
varn =0
while(n<10){
print(n+" ")
n+=1
}
//打印0 1 2 3 4 5 6 7 8 9
println()
n=0
do{
print(n+" ")
n+=1
}while(n<10)
//打印0 1 2 3 4 5 6 7 8 9
}
}