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 关注
- 141 浏览
添加回答
举报