我们将此作为考试题目(练习),答案是1和6.我不知道这是什么答案,踩到程序也没有帮助。任何人都可以解释为什么这是答案以及如何处理这个问题。
var value1: Int = 4
var value2: Int = 6
value1 match {
case 1 => value2 += 1
case 2 => value2 -= 4
case 3 => value1 = value2 * 2
case 4 => value1 -= 3;
case 5 => value2 += 1
case _ => value1 = value2 + 1
}
println("value1 = " + value1 + ", value2 = " + value2)
答案 0 :(得分:1)
我想您对match
的工作原理感到困惑。虽然它看起来类似于其他语言中的switch
语句,但它有些不同。
在Scala中,case
表达式没有"通过"。每个案例都是独立评估的,如果在这种情况下变量value1
与模式匹配,则执行其块。一旦执行了一个块,就会忽略所有其他(可能匹配的)情况。