1. if

if/ese 语法和其他语言差不多,但是scala的if有返回值

object ScalaApp extends App {
val x = "scala"
val result = if (x.length == 5) "true" else "false"
println(result)
}

2. 代码块

使用 {} 块包含一系列表达式,块中最后一个表达式的值就是块的值

object ScalaApp extends App {
val result = {
    val a = 1 + 1; val b = 2 + 2; a + b
}
println(result)
}

如果代码块里面最后一个语句没有返回值,则返回Unit

val result ={ val a = 1 + 1; val b = 2 + 2 }

3. while

object ScalaApp extends App {

var n = 0
while (n < 10) {
    n += 1
    println(n)
}
do {
    n += 1
    println(n)
} while (n < 10)
}

4. for

n<-1 是一个生成器,一般在循环中使用

object ScalaApp extends App {

//基本使用
for (n <- 1 until 10) { println(n) }  //输出1~9
for (n <- 1 to 10) { println(n) }  //输出1~10
for (n <- 2 to 10 by 2) { println(n) }  //输出 2,4,6,8,10,步长为2
}

to 跟until 都可以通过by设置步长,until边界值包前不包后,to两边边界都会包进去

5. try..catch..finally

import java.io.{FileNotFoundException, FileReader}

object ScalaApp extends App {
		try {
		val reader = new FileReader("wordCount.txt")
	} catch {
		case ex: FileNotFoundException =>
			ex.printStackTrace()
			println("没有找到对应的文件!")
	} finally {
		println("finally 语句一定会被执行!")
	}
}

//finally 语句一定会被执行,所以不要在该语句中返回值,否则返回值会被作为整个 try 语句的返回值

6. 条件选择表达式match

object ScalaApp extends App {
val elements = Array("A", "B", "C", "D", "E")

for (elem <- elements) {
    elem match {
      case "A" => println(10)
      case "B" => println(20)
      case "C" => println(30)
      case _ => println(50)
    }
	 }
val elements = Array("A","B","C","D","E")
for (element <- elements) {
    var score = element match {
        case "A" => 90
        case "B" => 80
        case "C" => 70
        case "D" => 60
        case _ => 50
    }

    print(element + ":" + score)
}
}

特性

1. Scala 中的 case 语句支持任何类型;
2.Scala 中每个分支语句后面不需要写 break,因为在 case 语句中 break 是隐含的,默认就有;
3.在 Scala 中 match 语句是有返回值的,而 Java 中 switch 语句是没有返回值的。

=>用法

1.在模式匹配 match 和 try-catch 都用 “=>” 表示输出的结果或返回的值
2.表示函数的返回类型(Function Type)
3.匿名函数  匿名函数定义,=>左边是参数 右边是函数实现体 (x: Int)=>{}
4.By-Name Parameters(传名参数)

7.没有break和continue

Scala 中并不支持 Java 中的 break 和 continue 关键字

8.输入与输出

在 Scala 中可以使用 print、println、printf 打印输出。如果需要从控制台中获取输入,则可以使用 StdIn 中定义的各种方法。

val name = StdIn.readLine("Your name: ")
print("Your age: ")
val age = StdIn.readInt()
println(s"Hello, ${name}! Next year, you will be ${age + 1}.")