3 回答

TA貢獻2051條經驗 獲得超10個贊
問題是您聲明classif為 a string,但您將其與 進行比較int:
private string classif;
switch (classif)
{
case 1: nameClassif = "rock"; break; // 1 is an int, not a string!
}
簡而言之:“5”不等于 5,也不能與 5 比較。要解決此問題,您應該將 like 與 like 進行比較:
switch (classif)
{
case "1": nameClassif = "rock"; break;
case "2": nameClassif = "paper"; break;
case "3": nameClassif = "scissors"; break;
default:
WriteLine("Invalid selection..." +
" I assume you chose rock... :");
nameClassif = "rock - ???"; break;
}
現在您要比較的類型與您要比較的類型相同,因此代碼可以正常工作。

TA貢獻1847條經驗 獲得超7個贊
當您使用switch
語句時,case 語句中的值需要與您打開的變量的類型相匹配。您正在打開classif
,這是 a string
,但您的case
語句是 1、2、3,它們是int

TA貢獻1850條經驗 獲得超11個贊
這個:
case 1, 2, 3 表示整數..這就是它返回錯誤的原因。
case "1": nameClassif = "rock"; break;
case "2": nameClassif = "paper"; break;
case "3": nameClassif = "scissors"; break;
- 3 回答
- 0 關注
- 191 瀏覽
添加回答
舉報