我有三个if-else语句。像这样:
int Group1 = 1;
int Group2 = 3;
int Group3 = 6;
if (Group1 < Group2 && Group1 < Group3)
{
Group1 += 5;
}
else if (Group2 < Group1 && Group2 < Group3)
{
Group2 += 5;
}
else
{
Group3 += 5;
}
现在,我相信上面的代码将通过第一个if语句,因为Group1是最小的,但是如果将被处理,那么值将改变第二个。如何在第一个if语句中停止并在找到最小的Group整数时从循环中断? 或者我错了,只有在计算陈述时才会出错?
答案 0 :(得分:4)
仅评估第一个if语句。
这里没有循环;只有一组条件。由于您使用了else if
,因此如果原始if
评估为false,则只能输入 。如果你写了
if (Group1 < Group2 && Group1 < Group3)
{
Group1 += 5;
}
// No else
if (Group2 < Group1 && Group2 < Group3)
{
然后两者都会执行。
答案 1 :(得分:1)
if
语句接受布尔表达式。在这种情况下,表达式只是通过计算表达式产生的结果值并不重要。你真正需要的只是创建一个minimal, compile-able example。换句话说,删除所有布尔逻辑创建的噪声。将此技能添加到工具箱后,您可以开始自己回答这些类型甚至更复杂的问题。
void Main()
{
bool first = true;
bool second = false;
if(first){
second = true;
Console.WriteLine("One true");
}else if(second){
Console.WriteLine("Two trues");
}else{
//more like default, but you don't see this which is what matters
Console.WriteLine("Three trues");
}
}
//Result: One True