【发布时间】:2018-01-02 02:01:10
【问题描述】:
我正在创建一个刽子手应用程序,当我删除它时 if 语句不起作用,代码有效,但仅适用于一种动物。代码应该更新标签,如果单词包含该字母,则将您按下的字母放在适当的位置。我尝试创建一个开关
(随机是从动物数组中选择的单词)
switch random {
case "aardvark":
(the code for when random is aardvark)
default:
(the code for sea turtle) }
但默认情况下每次都会执行,即使 random 是土豚
@IBAction func aPressed(_ sender: Any) {
if random == "aardvark" {
if aardvark[0] == "a" {
aar[0] = "a"
};if aardvark[1] == "a" {
aar[1] = "a"
};if aardvark[2] == "a" {
aar[2] = "a"
};if aardvark[3] == "a" {
aar[3] = "a"
};if aardvark[4] == "a" {
aar[4] = "a"
};if aardvark[5] == "a" {
aar[5] = "a"
};if aardvark[6] == "a" {
aar[6] = "a"
};if aardvark[7] == "a" {
aar[7] = "a"
} else if aardvark[0] != "a" , aardvark[1] != "a" , aardvark[2] != "a" , aardvark[3] != "a" , aardvark[4] != "a" , aardvark[5] != "a" , aardvark[6] != "a" , aardvark[7] != "a" {
wrong += 1
}
theWord.text = self.aar.joined(separator: " ")
}
if random == "sea turtle" {
if seaTurtle[2] == "a" {
sTurt[2] = "a"
theWord.text = self.sTurt.joined(separator: " ")
}
}
buttonA.isHidden = true
updateImage()
}
【问题讨论】:
-
if..if..if..!=switch因为每个if都可能被执行。也许你在想if..else if..else if..? -
这也是 if random == "aardvark" 等不起作用的原因吗?
-
如果那个(“aardvark”的字符串)是是
random变量的内容,它“将是一个真实的条件”(所以也许random变量包含其他内容?)。另外,请注意,有一个 outer if 包装了所有if..if..if..。花一些时间来应用统一的缩进/格式会使其更加清晰。此外,将每个if..放在新行的开头。 -
仅供参考 - 我真的希望您不打算为每个单词设置一个变量,并为每个单词设置一组
if语句。到目前为止,您的逻辑是完成刽子手游戏的最不合适的方法。请考虑一下您的代码将如何处理数千个单词。 -
了解
if else是关于什么的。更好的是,如果switch语句给 you 您声称的结果,请给我们 full 代码来重现它,而不是 "(当随机是土豚)”。random != "aardvark极有可能,这就是执行默认设置的原因。
标签: swift if-statement switch-statement