Одновременное выполнение блоков if и else - PullRequest
6 голосов
/ 13 июня 2010

В С или С ++

if ( x )
    statement1;
else
    statement2;

Для какого значения x будут выполняться оба оператора?

Я знаю, что мы можем выполнить if-else вместе вот так:

if(1){
    goto ELSE;
}
else{
    ELSE:
}

Есть ли способ, как значение? (Что, я думаю, невозможно. Спрашиваю, потому что кто-то спорит!)

Ответы [ 13 ]

0 голосов
/ 13 июня 2010

Вы можете использовать целое число в качестве тестовой переменной и проверить ее значение, используя>, <,> =, <=, == </p>

    int x = 0;

    if ( x >= 0 ) {
        statement 1;
    }
    if ( x <= 0 ) {
        statement 2;
    }

В этом примере оба оператора выполняются, только если x равен 0. В противном случае будет только один из них.

0 голосов
/ 13 июня 2010

Вот простой пример:

#include <stdio.h>

int main() {
    int x;
    x = 6;
    if (x % 2 == 0) {
        printf("Divisible by two\n");
    }
    else if (x % 3 == 0) {
        printf("Divisible by three\n");
    }
    else {
        printf("Not divisible by two or three\n");
    }
    return 0;
}

Печать

Divisible by two

НЕ

Divisible by two
Divisible by three
0 голосов
/ 13 июня 2010

Без хитрого обмана нет, это невозможно. Посмотрите, что означает это выражение:

if (cond) {
  ifTrue;
} else {
  ifFalse;
}

Это говорит о том, что нужно выполнить ifTrue, если cond истинно (ненулевое значение / true), и выполнить ifFalse, если cond равно ложь (ноль / false). Поскольку cond не может быть одновременно истинным и ложным, вы не можете выполнить оба ifTrue и ifFalse без особого случая, такого как goto.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...