Почему оператор else все еще выполняется, когда выполняется оператор if перед выполнением? - PullRequest
0 голосов
/ 06 января 2019

Когда "wunschnote" не> 6 и <1, так что ни один из операторов if не запускается, он работает, но как только запускается один из операторов if stamemts, также выполняется остальное stamements ... </p>

Я пытался установить 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 не получит executet.

Ответы [ 3 ]

0 голосов
/ 06 января 2019

Ваш оператор else действителен только для второго условия if (<1). Чтобы сделать его применимым и к первому условию if, вам нужно использовать конструкцию if-else if-else. </p>

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.");
}
0 голосов
/ 06 января 2019

Попробуйте это:

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.");
0 голосов
/ 06 января 2019

Вам необходимо подать if else if в вашем втором условии для вашего случая:

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

Теперь в этом случае будет выполняться только один код условного блока.

...