我正在尝试编写一些代码来计算给定基因型的表型。
我在以下代码中声明了基因,该代码具有三个选项,例如ee,Ee和EE。
某些组合会赋予某些颜色。最后,我可以使基因改变应用程序顶部的图像,但是我的if语句不断出错。我试过使用blabla.contains,数组等
这些是我试图在我的代码中得到的组合:
我的代码:
var ext = String("ee")
var ago = String("aa")
func checkPicture() {
if ext = "EE" || "Ee" && ago == "aa" {
baseLayer.image = #imageLiteral(resourceName: "black")
base = String("black")
}
if ago == "Aa" || "AA" && ext == "EE" || "Ee" {
baseLayer.image = #imageLiteral(resourceName: "bay")
base = String("bay")
}
if ext == "ee" {
baseLayer.image = #imageLiteral(resourceName: "chestnut")
base = String("chestnut")
}
}
答案 0 :(得分:3)
首先请不要从字符串创建字符串,这已经足够
let ext = "ee"
let ago = "aa"
基本上,例如,您必须分别评估每个值
if (ago == "Aa" || ago == "AA") && (ext == "EE" || ext == "Ee") { ...
并使用if - else if
。
但是,这是一个将switch
与元组结合使用的好例子
func checkPicture() {
switch (ext, ago) {
case ("EE", "aa"), ("Ee", "aa"):
baseLayer.image = #imageLiteral(resourceName: "black")
base = "black"
case ("EE", "AA"), ("Ee", "AA"), ("EE", "Aa"), ("Ee", "Aa"):
baseLayer.image = #imageLiteral(resourceName: "bay")
base = "bay"
case ("ee", _):
baseLayer.image = #imageLiteral(resourceName: "chestnut")
base = "chestnut"
default: break
}
}
答案 1 :(得分:1)
您无法ago == "Aa" || "AA"
来指定与之比较的内容:ago == "Aa" || ago == "AA"
,并且在某些情况下,您会误用赋值运算符=
而不是使用等于运算符{ {1}}。为确保添加==
语句,您只会输入一个:
else if