while true {
print ( """
1. Log in
2. Create new user
3. Quit
""")
if let numberString = readLine(), let number = Int(numberString) {
print("you entered \(number)")
break
} else {
print("Try again")
}
}
以后有必要用數字變數來比較一下。怎么可能看不見?
當我嘗試制作一個全域變數時,出現了問題:
var numberString: String?
var number: Int?
while true {
print ( """
1. Log in
2. Create new user
3. Quit
""")
if numberString = readLine(), number = Int(numberString) {
print("you entered \(number)")
break
} else {
print("Try again")
}
}

uj5u.com熱心網友回復:
這里沒有太多資訊可以提供,但我想我可以提供幫助。在第一個腳本中,您將創建一個新變數并設定該變數的值:
if let numberString = readLine(), let number = Int(numberString) { ... }
在您的第二個腳本中,您必須使用全域變數,但您從未為它們提供值。您需要做的是在比較它們之前為全域變數 (numberString和) 提供一個值。number因此,您需要使用 == 符號來比較不同的變數/型別。例如:
var numberString: String?
var number: Int?
while true {
print("""
1. Log in
2. Create new user
3. Quit
""")
numberString = readLine()
number = Int(numberString!)
}
您現在可以比較和/或列印您的全域變數...
最終代碼
var numberString: String?
var number: Int?
while true {
print("""
1. Log in
2. Create new user
3. Quit
""")
numberString = readLine()
number = Int(numberString!)
if number == 1 {
print("you have selected number one")
} else if number == 2 {
print("you have selected number two")
} else if number == 3 {
print("you have selected number three")
} else {
print("Try again")
}
}
由于這兩個變數numberString現在number都是全域變數,因此如果您將來需要再次比較它們,您可以訪問它們。
uj5u.com熱心網友回復:
考慮到您正在創建命令提示符并且該選擇在回圈之外沒有任何意義,因此無需將其設為全域。您只需要切換用戶選擇并決定從那里做什么。請注意,如果您嘗試從開關內部中斷,則不會像我在上一個問題中向您展示的那樣退出回圈(順便說一句,您忘記通過單擊投票計數器下方的灰色復選標記將其標記為正確)。為了讓編譯器知道您想要中斷 while 回圈而不是 switch,您需要標記您的 while 回圈陳述句,這樣您可以指定當回圈中有 switch 時要中斷的內容。試試這樣:
func getValue() -> Int? {
guard let line = readLine(), let value = Int(line) else {
return nil
}
return value
}
question: while true {
print("""
1. Log in
2. Create new user
3. Quit
""")
guard let value = getValue() else {
continue
}
switch value {
case 1:
print("you have selected number one")
case 2:
print("you have selected number two")
case 3:
print("Good bye")
break question
default:
print("Try again")
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/420999.html
標籤:
上一篇:根據焦點元素使用按鍵滾動頁面
下一篇:從零到阿里的三年
