Являются ли множественные операторы "if" и "if-else-if" одинаковыми для взаимоисключающих условий?

Есть ли разница между написанием нескольких if заявления и if-else-if заявления?

Когда я пытался написать программу с несколькими if Заявления, он не дал ожидаемых результатов, но он работал с if-else-if,

Условия были взаимоисключающими.

4 ответа

Решение

Когда вы пишете несколько операторов if, возможно, что более одного из них будут оценены как true, поскольку операторы не зависят друг от друга.

Когда вы пишете один оператор if else-if else-if ... else, только одно условие может быть оценено как true (как только будет найдено первое условие, которое оценивается как true, следующее условие else-if будет пропущено).

Вы можете сделать несколько операторов if вести себя как один оператор if else-if .. else, если каждый из блоков условий выходит из блока, который содержит операторы if (например, путем возврата из метода или прерывания из цикла).

Например:

public void foo (int x)
{
    if (x>5) {
        ...
        return;
    }
    if (x>7) {
        ...
        return;
    }
}

Будет иметь такое же поведение как:

public void foo (int x)
{
    if (x>5) {
        ...
    }
    else if (x>7) {
        ...
    }
}

Но без операторов return оно будет иметь разное поведение, когда x>5 и x>7 оба истинны.

Да, это имеет значение: см . Заявления if-then и if-then-else.

Кроме того, вы можете легко проверить это.

Код № 1:

    int someValue = 10;

    if(someValue > 0){
        System.out.println("someValue > 0");
    }

    if(someValue > 5){
        System.out.println("someValue > 5");
    }

Будет выводить:

someValue > 0
someValue > 5

Пока код № 2:

    int someValue = 10;

    if(someValue > 0){
        System.out.println("someValue > 0");
    }else if(someValue > 5){
        System.out.println("someValue > 5");
    }

Будет только вывод:

someValue > 0

Как видите, код #2 никогда не переходит во второй блок, так как первый оператор (someValue > 0) оценивается как true,

Нет, оба не одинаковы. если заявления будут проверять все условия. Если вы напишете несколько операторов if, он проверит каждое условие. Если еще проверить условия, пока не будет выполнено. Один раз, если / иначе, если удовлетворен, он будет вне этого блока.

if()
{
stmt..
}
else
{
stmt
}
if()
{
stmt
}
here compiler will check for both the if condition.

В приведенном ниже коде компилятор кода проверит условия if, как только сначала, если условие станет истинным, если условие будет обойдено.

        if(){

        }
        else if
        {

        }
        else if
        {

        }
        else if
        {

        }
Другие вопросы по тегам