为什么运行if语句之前else语句仍然运行?

时间:2019-01-06 14:18:16

标签: c# if-statement console console-application

当“ wunschnote”不是> 6且<1时,如果没有if语句运行,则不会起作用,但是一旦if stamemts之一运行,eleste也会执行...

我试图设置“ Console.ReadLine();”在if语句中,但这会导致相同的问题。然后,我尝试将else语句替换为if语句,但这也会导致相同的问题。

if (wunschnote > 6)
{
    Console.WriteLine("Der Wunschnitt kann nicht erreicht werden.\nDie Wunschnote müsste eine " + wunschnote + " betragen.");
}

if (wunschnote < 1)
{
    Console.WriteLine("Der Wunschnitt kann nicht erreicht werden.\nDie Wunschnote müsste eine " + wunschnote + " betragen.");
}

else
{
    Console.WriteLine("In der nächsten Probe muss eine " + wunschnote + " erreicht werden, damit der Schnitt von " + wunsschnitt + " erreicht wird.");
}
Console.ReadLine();

我希望当if语句之一运行时,else语句将不会执行。

3 个答案:

答案 0 :(得分:0)

在您的情况下,您需要在第二个条件下申请if else if

if (wunschnote > 6) { // this fails
}
else if (wunschnote < 1) { // then check this 
}
else { // if above if fails then this executes
} 

现在,在这种情况下,将只执行一个条件块代码。

答案 1 :(得分:0)

您的else语句仅对第二个if条件(<1)有效。为了使其同样适用于第一个if条件,您需要使用if-else if-else构造。

if(condition1)
{    }
else if(condition2)
{    }
else { }

带有您的代码。

if (wunschnote > 6)
{
    Console.WriteLine("Der Wunschnitt kann nicht erreicht werden.\nDie Wunschnote müsste eine " + wunschnote + " betragen.");
}

else if (wunschnote < 1)
{
    Console.WriteLine("Der Wunschnitt kann nicht erreicht werden.\nDie Wunschnote müsste eine " + wunschnote + " betragen.");
}

else
{
    Console.WriteLine("In der nächsten Probe muss eine " + wunschnote + " erreicht werden, damit der Schnitt von " + wunsschnitt + " erreicht wird.");
}

答案 2 :(得分:0)

尝试一下:

if (wunschnote > 6 || wunschnote < 1)
    Console.WriteLine("Der Wunschnitt kann nicht erreicht werden.\nDie Wunschnote müsste eine " + wunschnote + " betragen.");
else
    Console.WriteLine("In der nächsten Probe muss eine " + wunschnote + " erreicht werden, damit der Schnitt von " + wunsschnitt + " erreicht wird.");