Swift案例陈述

时间:2017-03-19 23:40:46

标签: ios swift switch-statement statements

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

from sys import argv
script, file1 = argv
import pickle
def rewind(f):
    print(f.seek(0))
    f.seek(0)

txt = open(file1, 'a+')
txt.write(raw_input("What would you like to add to the file?:\n"))
rewind(txt)
text = txt.read()
print text
def breakwords(f):
    split_words = f.split(' ')
    return split_words
brkwrds = breakwords(text)
print brkwrds
def sort_words(f):
    sorted_words = sorted(f)
    return sorted_words
sw = sort_words(brkwrds)

rewind(txt)
txt.truncate()
txt.write(pickle.dumps(sw).encode("string-escape")+"\n")
txt.close()

2 个答案:

答案 0 :(得分:8)

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 

}

check this

  

与C和Objective-C中的switch语句相比,切换   Swift中的语句不会落在每个案例的底部   默认情况下进入下一个。相反,整个switch语句   一旦第一个匹配的开关盒就完成它的执行   完成后,无需明确的中断声明。这使得   switch语句比C语言更安全,更容易使用   避免误操作多个开关盒。

此致

答案 1 :(得分:3)

开关从上到下进行评估,因此自第一次测试满足(grade < 100)后,程序将始终返回A.您可以简单地颠倒案例的顺序。通常,您希望switch语句从最严格限制到最不限制。