【发布时间】:2016-03-05 18:10:16
【问题描述】:
大家好,我很难找出问题所在。在下面的函数中,当类别为减法且级别为 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 ifsyntax in swift -
不要更改问题的全部内容,这会使现有答案无效。如果您有一个新的、不同的问题,请创建一个新问题。这个应该停留在它现有的话题上。谢谢。
标签: ios swift function curly-brackets