以下是我想要做的事情的逻辑。可以帮助我用C#解决这个问题。
string strMessage=string.empty;
for (int i = 0; i < 20; ++i)
{
switch i
{
Case 1,2,7,5:
strMessage="You Won";
break;
Case 6,8,10,3:
strMessage="You can try again";
break;
}
}
Response.write(strMessage);
每当i的值为1,2,7或5时strMessage =“你赢了” 每当i的值为6,8,10或3时strMessage =“你可以再试一次”
答案 0 :(得分:7)
string strMessage = string.Empty;
for (int i = 0; i < 20; ++i)
{
switch(i)
{
case 1:
case 2:
case 7:
case 5:
strMessage = "You Won";
break;
case 6:
case 8:
case 10:
case 3:
strMessage = "You can try again";
break;
}
}
Response.write(strMessage);
答案 1 :(得分:2)
此特定代码将始终显示
strMessage = "You can try again";
因为for循环以及当i> 10时,交换机不会执行任何操作。
答案 2 :(得分:1)
你的循环将导致打印所有消息,以及12个空行。
这里有一些伪造的代码:
for the values 0 to 19
if i == 1 or 2 or 7 or 5 then message = "You Won"
else if i == 3 or 6 or 8 or 10 then message = "You can try again"
else message = string.empty
如果你在头脑中完成代码,或者使用铅笔和纸,你的问题就会变得清晰。
所以,当它遇到你案件中的最大数字(10)时,该消息将被设置为“你可以再试一次”,并且不会再次设置。
所以,当循环结束时,消息将是“你可以再试一次”...来解决这个问题,要么将你的Response.Write移动到循环中
交换机上的语法都错了:
switch (i)
{
case 1:
case 2:
// do something
break;
}
here is the MSDN reference for switch
一般指导原则是你可以将多个案例陈述放在一起,但case
不能落空(就像在C / C ++中一样),它必须以break;
答案 3 :(得分:1)
你可以选择像
这样的东西public string Evaluate(int value)
{
if (new[] {1, 2, 7, 5}.Contains(value)) return "You Won";
return new[] {3, 6, 8, 10 }.Contains(value) ? "Try again" : "";
}
不确定你要对你的循环做什么...看起来有点破碎,但如果你想为每个0..19写出
Enumerable.Range(0, 20).Select(Evaluate).ToList().ForEach(Response.write);
答案 4 :(得分:0)
每个案例可能只代表一个值,因此您要做的是不间断地创建案例:
string strMessage=string.empty;
for (int i = 0; i < 20; ++i)
{
switch i
{
Case 1:
Case 2:
Case 7:
Case 5:
strMessage="You Won";
break;
Case 6:
Case 8:
Case 10:
Case 3:
strMessage="You can try again";
break;
}
}
Response.write(strMessage);
答案 5 :(得分:0)
我相信你在编译时遇到了麻烦,因为像“Case1,2,7,5”这样的陈述是无效的。
相反,您需要对它们进行分层并根据需要使用fallthrough / break。
我相信这是你想要实现的目标:
for (int i = 0; i < 20; i++)
{
switch (i)
{
Case 1:
Case 2:
Case 5:
Case 7:
strMessage="You Won";
break;
Case 3:
Case 6:
Case 8:
Case 10:
strMessage="You can try again";
break;
}
}
查看相关问题Multiple Cases in Switch
答案 6 :(得分:0)
你应该这样写:
string strMessage = string.Empty;
for (int i = 0; i < 20; ++i)
{
switch (i)
{
case 1:
case 2:
case 7:
case 5:
strMessage="You Won";
break;
case 6:
case 8:
case 10:
case 3:
strMessage="You can try again";
break;
}
}