如何在第一个if-else处理时阻止代码运行if语句?

时间:2018-05-03 16:58:44

标签: c# if-statement

我有三个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整数时从循环中断? 或者我错了,只有在计算陈述时才会出错?

2 个答案:

答案 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