我有3個屏幕的應用程序,屏幕1(類別)有多個按鈕,屏幕2(詳細信息)有更多按鈕,屏幕3基於按鈕是什麼顯示文本在前兩個屏幕中按下。快速減少if語句的長度
屏幕1上的按鈕保持不變,屏幕2上的按鈕因隱藏或顯示而異,具體取決於第一個屏幕上按下的按鈕。爲此,我現在有一個很長的陳述,我試圖找到減少它的方法。
可以幫助,但認爲我錯過了簡單的東西。
如果語句看起來類似於這樣:
if selectedCategory == "Option 1" {
if selectedDetail == "Detail A" {
selectedURL = optionOneData.detailA
} else if selectedDetail == "Detail C" {
selectedURL = optionOneData.detailC
} else if selectedDetail == "Detail E" {
selectedURL = optionOneData.detailE
} else if selectedDetail == "Detail G" {
selectedURL = optionOneData.detailG
} else if selectedDetail == "Detail J" {
selectedURL = optionOneData.detailJ
} else {
print("Invalid selection, something went wrong.")
}
} else if selectedCategory == "Option 2" {
if selectedDetail == "Detail B" {
selectedURL = optionTwoData.detailB
} else if selectedDetail == "Detail C" {
selectedURL = optionTwoData.detailC
} else if selectedDetail == "Detail D" {
selectedURL = optionTwoData.detailD
} else if selectedDetail == "Detail E" {
selectedURL = optionTwoData.detailE
} else if selectedDetail == "Detail F" {
selectedURL = optionTwoData.detail F
} else if selectedDetail == "Detail G" {
selectedURL = optionTwoData.detailG
} else if selectedDetail == "Detail H" {
selectedURL = optionTwoData.detailH
} else if selectedDetail == "Detail I" {
selectedURL = optionTwoData.detailI
} else if selectedDetail == "Detail J" {
selectedURL = optionTwoData.detailJ
} else {
print("Invalid selection, something went wrong.")
}
不是我的實際代碼,改名變量的上下文。
這隻代表我所擁有的三分之一左右,所以我非常希望減少用於提高效率和可讀性的代碼量。
感謝。
'Switch()'語句替代了long if-elseif-else條件語句。嘗試使用它。 – Priyal
也可以創建你的選項,因爲'Enum'會使你的代碼更具可讀性,但你必須使用'switch'來分配數據和字符串 – Tj3n
switch語句仍然很長,你的數據可能被保存在字典中或陣列很容易。 –