Swift案例陈述

HSC*_*ER_ -1 switch-statement statements ios swift

我在Swift 3.0中尝试切换语句使用我的代码,无论我的变量是什么,我都得到A. 为什么我只得到A?

var grade = 45

switch grade {

    case (grade ..< 100):
        print("A")
    case (grade ..< 90):
        print("B")
    case (grade ..< 80):
        print("C")
    case (grade ..< 70):
        print("D")

    default:
        print("F. You failed")
}
Run Code Online (Sandbox Code Playgroud)

小智 9

switch语句考虑一个值并将其与几种可能的匹配模式进行比较.然后,它根据成功匹配的第一个模式执行适当的代码块.

在您的具体情况下尝试使用:

var grade = 45

switch grade {

case 90 ..< 100: //Numbers 90-99  Use 90...100 to 90-100
    print("A")
case (80 ..< 90): //80 - 89
    print("B")
case (70 ..< 80): // 70 - 79
    print("C")
case (0 ..< 70): // 0 - 69
    print("D")

default:
    print("F. You failed")//Any number less than 0 or greater than 99 

}
Run Code Online (Sandbox Code Playgroud)

检查一下

与C和Objective-C中的switch语句相比,Swift中的switch语句不会通过每个case的底部进入默认情况下的下一个语句.相反,只要第一个匹配的switch case完成,整个switch语句就会完成执行,而不需要显式的break语句.这使得switch语句比C中的语句更安全,更容易使用,并且避免错误地执行多个switch case.

问候