3 回答

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超6個(gè)贊
您無(wú)法將其轉(zhuǎn)換為開(kāi)關(guān),因?yàn)槟皇歉鶕?jù)單個(gè)值來(lái)選擇要執(zhí)行的操作,并且您的條件并不相互排斥。
但是,您可以將四個(gè) if 轉(zhuǎn)換為循環(huán):
for (int a = 0; a < 4; ++a) {
int dr = (a & 1 == 0) ? 0 : (a & 2 == 0) ? 1 : -1;
int dc = (a & 2 == 0) ? 0 : (a & 1 == 0) ? 1 : -1;
if (board[r + dr][c + dc] == ' ') {
nextRow = r + dr;
nextCol = c + dc;
return true;
}
}

TA貢獻(xiàn)1788條經(jīng)驗(yàn) 獲得超4個(gè)贊
看來(lái)您沒(méi)有對(duì)每個(gè) if-else 檢查相同的值,因此不可能使用開(kāi)關(guān)進(jìn)行寫入。switch 語(yǔ)句檢查一個(gè)變量以查看它是否適合給定值。

TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超3個(gè)贊
您不能將此轉(zhuǎn)換為 switch 語(yǔ)句,因?yàn)槟粰z查一個(gè)值。對(duì)于 switch 語(yǔ)句,代碼必須如下所示:
int a = 0;
if (a == 0) {
...
}
else if (a == 1) {
...
}
else if (a == 2) {
...
}
...
和 switch 語(yǔ)句:
switch (a) {
case 0:
...
break;
case 1:
...
break;
case 2:
...
break;
}
添加回答
舉報(bào)