Условия


Принимать решение

В жизни все мы должны принимать решения. Чтобы принять решение, мы взвешиваем наши возможности, как и наши программы.

Вот общая форма структур принятия решений, найденных в C.

int target = 10;
if (target == 10) {
    printf("Target is equal to 10");
}

ifзаявление

ifОператор позволяет проверить , если выражение trueили false, и выполнить другой код в зависимости от результата.

Чтобы оценить, равны ли две переменные, используется ==оператор, как и в первом примере.

Операторы неравенства также могут использоваться для оценки выражений. Например:

int foo = 1;
int bar = 2;

if (foo < bar) {
    printf("foo is smaller than bar.");
}

if (foo > bar) {
    printf("foo is greater than bar.");
}

Мы можем использовать elseключевое слово для выполнения кода, когда наше выражение оценивается как false.

int foo = 1;
int bar = 2;

if (foo < bar) {
    printf("foo is smaller than bar.");
} else {
    printf("foo is greater than bar.");
}

Иногда у нас будет более двух результатов на выбор. В этих случаях мы можем «связать» несколько if elseоператоров вместе.

int foo = 1;
int bar = 2;

if (foo < bar) {
    printf("foo is smaller than bar.");
} else if (foo == bar) {
    printf("foo is equal to bar.");
} else {
    printf("foo is greater than bar.");
}

Вы также можете вкладывать if elseоператоры, если хотите.

int peanuts_eaten = 22;
int peanuts_in_jar = 100;
int max_peanut_limit = 50;

if (peanuts_in_jar > 80) {
    if (peanuts_eaten < max_peanut_limit) {
        printf("Take as many peanuts as you want!\n");
    }
} else {
    if (peanuts_eaten > peanuts_in_jar) {
        printf("You can't have anymore peanuts!\n");
    }
    else {
        printf("Alright, just one more peanut.\n");
    }
}

Два или более выражения можно вычислить вместе с помощью логических операторов, чтобы проверить, оцениваются ли два выражения trueвместе или хотя бы одно из них. Чтобы проверить, соответствуют ли оба выражения обоим выражениям true, используйте оператор AND &&. Чтобы проверить, соответствует ли хотя бы одно из выражений true, используйте оператор OR ||.

int foo = 1;
int bar = 2;
int moo = 3;

if (foo < bar && moo > bar) {
    printf("foo is smaller than bar AND moo is larger than bar.");
}

if (foo < bar || moo > bar) {
    printf("foo is smaller than bar OR moo is larger than bar.");
}

Аналогичным !образом можно использовать оператор NOT :

int target = 9;
if (target != 10) {
    printf("Target is not equal to 10");
}

Упражнение

В этом упражнении вы должны построить ifоператор внутри оператора guessNumberфункции, который проверяет, guessравно ли число 555. Если это так, функция должна распечатать с использованием printf«Верно. Вы угадали!». Если guessменьше 555, функция должна распечатать с пометкой printf«Ваше предположение слишком мало». Если guessбольше 555, функция должна распечатать с пометкой printf«Ваше предположение слишком велико».

  • Важно : не забудьте добавить символ новой строки \nв конец строки printf.