if (条件) 值1 else 值2
2.单重for循环for (变量 <- 集合或数组 (条件)) {
语句组
}
输出1到10:
Range(a, b): 从a到b,不包含b,跟Python里的range函数一样,含头不含尾
1 to 10表示将1到10的所有值组成一个集合,且包括10。若不想包括10,则可使用关键字until
遍历字符串,输出每个字符
传统格式
for (变量1 <- 集合或数组(条件))
for (变量2 <- 集合或数组(条件)) {
语句组
}
}
特有格式
for (变量1 <- 集合或数组; 变量2 <- 集合或数组 (条件)) {
语句组
}
package net.hw.structure
object Example02 {
def main(args: Array[String]): Unit = {
for (i <- 1 to 9) {
for (j <- 1 to i)
print(i.toString + “×” + j + “=” + (i * j) + “t”)
println()
}
}
}
sdn.net/howard2005/article/details/123305488
方法一、传统双重循环
方法二、特有双重循环
Scala中继承了Java的异常机制,提供了程序中产生意外情况时处理的机制,抛出异常的过程和Java中基本一致,通过throw关键字进行:throw XxxException(),一旦抛出可以当场捕获处理或接着向上抛,捕获异常是通过 try-catch-finally来实现的。
演示try-catch-finallytry-catch是有返回值的:如果没有异常就是try语句的返回值,如果有异常就是catch语句的返回值。注意不会是finally的返回值,finally即使有返回值,也会被抛弃,这点和Java是不同的。
在net.hw.structure包里创建Example07对象
package net.hw.structure
import java.io.IOException
object Example07 {
def main(args: Array[String]): Unit = {
var message = “”
val result = try {
mx()
“恭喜,程序执行正常!”
} catch {
case e: NullPointerException => “空指针异常”
case e: IOException => “呵呵,I/O异常~”
case e: Exception => “管它呢,反正是异常~”
} finally {
message = “程序到此为止!”
“无论是否有异常,都会执行finally里的语句~”
}
println(result)
println(message)
}
def mx(): Unit = {
throw new RuntimeException(“随便抛出一个异常~”)
}
}
语法格式
变量 match {
case 值1 => 表达式1或语句1
case 值2 => 表达式2或语句2
case 值3 => 表达式3或语句3
……
case _ => 表达式n或语句n
}
Scala中的match类似于其他语言的switch。与Java不同的是,match语句可以应用在任何类型量或表达式上,另外不需要调用break语句,match默认执行完一个case后直接跳出match结构。注意,match是具有返回值的,就是被选到的case的值
package net.hw.structure
import scala.io.StdIn
object Example08 {
def main(args: Array[String]): Unit = {
print(“输入城市:”)
val city = StdIn.readLine();
val comment = city match {
case “北京” => “伟Scala函数大的首都”
case “上海” => “神奇的魔都”
case “泸州” => “醉人的酒城”
case _ => “一般的城市”
}
print(city + ": " + comment)
}
}



