雲星資料---Scala實戰系列(精品版)】:Scala入門教程016-Scala實戰原始碼-Scala 判斷語句 、迴圈與java的比較
阿新 • • 發佈:2019-02-20
Scala 判斷語句 、迴圈與java的比較
package scala_learn.demo01_FunctionStatement
/**
* Created by liguohua on 2017/2/28.
*/
class O2_StatementsDemo {
}
object O2_StatementsDemo {
def main(args: Array[String]) {
fun1
println("*********************************************************************")
fun2
println ("*********************************************************************")
fun3
}
//用於解釋if語句
def fun1() {
val a:Int = 1
//scala中的if語句和java中基本一致,但是它是有返回值的,java中是沒有的
val b = if (a == 1) {
10
} else 20;
println(b)
}
//用於解釋while迴圈,scala中迴圈是沒有break和continue的
def fun2() {
var i = 0
while (i < 5) {
print(i)
// i++//錯誤,scala中沒有++,--操作
i = i + 1
}
println()
}
//用於解釋for迴圈,scala中迴圈是沒有break和continue的
def fun3(): Unit = {
println("****************************for[0,5]")
//[0,5]
for (i <- 0 to 5) {
print(i)
}
println()
println ("****************************for[0,5]")
//[0,5],0是個數字,是個物件,to是物件身上的函式,5是這個to函式的實參
for (i <- 0.to(5)) {
print(i)
}
println()
println("****************************for[0,5)")
//[0,5)
for (i <- 0 until 5) {
print(i)
}
println()
println("****************************for[0,5)")
//[0,5),0是個數字,是個物件,until是物件身上的函式,5是這個until函式的實參
for (i <- 0.until(5)) {
print(i)
}
println()
println("****************************for[0,10]之間的偶數")
//[0,5],scala中的for()內可以有0-N個if語句(守衛)
for (i <- 0 to 10; if (i % 2 == 0)) {
print(i)
}
println()
println("****************************for[0,10]之間的大於2的偶數")
//[0,5]
for (i <- 0 to 10; if (i % 2 == 0); if (i > 2)) {
print(i)
}
println()
println("****************************for[0,10]之間的大於2小於8的偶數")
//[0,5]
for (i <- 0 to 10; if (i % 2 == 0); if (i > 2); if (i < 8)) {
print(i)
}
println()
println("****************************for[0,10]之間的大於2小於8的偶數")
//[0,5]
for (i <- 0 to 10; if (i % 2 == 0); if (i > 2 && i < 8)) {
print(i)
}
println()
println("****************************大致的for迴圈巢狀**********************************")
for (i <- 0 to 5; j <- 0 to 4) {
println("i=" + i + ",j=" + j)
}
println("****************************正方形列印**********************************")
for (i <- 0 to 5) {
for (j <- 0 to 5) {
print("*")
}
println()
}
println("****************************for中的yield**********************************")
val no = for (i <- "hello") yield i
println("no=" + no) //no=hello
val no2 = for (i <- 1 to 2) yield i.toChar
println("no2=" + no2) //no2=Vector(,)
val no3 = for (i <- "hello"; j <- 1 to 2) yield (i + j).toChar
println("no3=" + no3) //no3=ijfgmnmnpq
val no4 = for (i <- 1 to 2; j <- "hello") yield (i + j).toChar
println("no4=" + no4) //no4=Vector(i, f, m, m, p, j, g, n, n, q)
}
}