嗨,大家好我很難搞清楚什麼是錯的。在下面的函數中,當類別是Subtraction並且Hard水平時,它跳過該函數並轉到分割部分。我認爲我所說的所有措辭都是正確的,但我認爲我的括號內容有問題。花了一個多小時試圖找到它。仍然不能。順便說一句,所有其他類別和級別的工作,即使在減法。唯一虛假的是減法,我無法找到括號內有什麼問題。缺少一個支架等(斯威夫特)
代碼:
func generate(){
if category == "Multiplication"{
if level == "Easy"{
part1 = Int(arc4random_uniform(UInt32(4)))
part2 = Int(arc4random_uniform(UInt32(4)))
questionsLbl.text = "\(part1) x \(part2)?"
answer = part1 * part2
createExtraAnswers()
}
if level == "Medium"{
part1 = Int(arc4random_uniform(UInt32(10)))
part2 = Int(arc4random_uniform(UInt32(10)))
questionsLbl.text = "\(part1) x \(part2)?"
answer = part1 * part2
createExtraAnswers()
}
if level == "Hard"{
part1 = Int(arc4random_uniform(UInt32(14)))
part2 = Int(arc4random_uniform(UInt32(14)))
questionsLbl.text = "\(part1) x \(part2)?"
answer = part1 * part2
createExtraAnswers()
}
}else{
if category == "Addition"{
if level == "Easy"{
part1 = Int(arc4random_uniform(UInt32(6)))
part2 = Int(arc4random_uniform(UInt32(6)))
questionsLbl.text = "\(part1) + \(part2)?"
answer = part1 + part2
createExtraAnswers()
}
if level == "Medium"{
part1 = Int(arc4random_uniform(UInt32(20)))
part2 = Int(arc4random_uniform(UInt32(20)))
questionsLbl.text = "\(part1) + \(part2)?"
answer = part1 + part2
createExtraAnswers()
}
if level == "Hard"{
part1 = Int(arc4random_uniform(UInt32(100)))
part2 = Int(arc4random_uniform(UInt32(100)))
questionsLbl.text = "\(part1) + \(part2)?"
answer = part1 + part2
createExtraAnswers()
}
}else{
if category == "Subtraction"{
if level == "Easy"{
part1 = Int(arc4random_uniform(UInt32(10)))
part2 = Int(arc4random_uniform(UInt32(10)))
questionsLbl.text = "\(part1) - \(part2)?"
answer = part1 - part2
if answer <= -1{
generate()
}
createExtraAnswers()
}
if level == "Medium"{
part1 = Int(arc4random_uniform(UInt32(25)))
part2 = Int(arc4random_uniform(UInt32(25)))
questionsLbl.text = "\(part1) - \(part2)?"
answer = part1 - part2
if answer <= -1{
generate()
}
createExtraAnswers()
}
if level == "Hard"{
part1 = Int(arc4random_uniform(UInt32(100)))
part2 = Int(arc4random_uniform(UInt32(100)))
questionsLbl.text = "\(part1) - \(part2)?"
answer = part1 - part2
createExtraAnswers()
}
}else{
if category == "Division"{
if level == "Easy"{
part1 = Int(arc4random_uniform(UInt32(37)))
part2 = Int(arc4random_uniform(UInt32(37)))
questionsLbl.text = "\(part1)/\(part2)?"
answerDub = Double(Double(part1)/Double(part2))
if (answerDub % 1 == 0) {
print("whole number confirmed")
print(answerDub)
answer = Int(answerDub)
print(answer)
createExtraAnswers()
} else {
generate()
}
}
}
if level == "Medium"{
part1 = Int(arc4random_uniform(UInt32(80)))
part2 = Int(arc4random_uniform(UInt32(80)))
questionsLbl.text = "\(part1)/\(part2)?"
answerDub = Double(Double(part1)/Double(part2))
if (answerDub % 1 == 0) {
print("whole number confirmed")
print(answerDub)
answer = Int(answerDub)
print(answer)
createExtraAnswers()
} else {
generate()
}
}
}
if level == "Hard"{
part1 = Int(arc4random_uniform(UInt32(140)))
part2 = Int(arc4random_uniform(UInt32(140)))
questionsLbl.text = "\(part1)/\(part2)?"
answerDub = Double(Double(part1)/Double(part2))
if (answerDub % 1 == 0) {
print("whole number confirmed")
print(answerDub)
answer = Int(answerDub)
print(answer)
createExtraAnswers()
} else {
generate()
}
}
}
}
}
您是否嘗試過單步調試器中的代碼?執行流程在什麼時候並不像您期望的那樣? –
你從哪裏得到'category'和'label'?設置那些選擇減法的值實際上將值設置爲除法或其他值時可能會遇到問題。另外,看看'else if' [swift中的語法](https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Statements.html#//apple_ref/swift/grammar/ if-statement) – shamsup
不要更改您的問題的全部內容,它會使現有答案無效。如果您有新的不同的問題,請創建一個新問題。這一點應該停留在現有的話題上。謝謝。 – Moritz