ЛУЧШИЙ САЙТ ДЛЯ ВЕБ-РАЗРАБОТЧИКОВ
Основы программирования. W3Schools на русском. Уроки для начинающих

Ua En Es De Fr

Инструкции If в программировании


Инструкции if позволяют вашей программе принимать решения, поэтому она может выполнять разные действия в зависимости от ситуации.


Что такое инструкция if?

Инструкция if выполняет блок кода, если условие true (истинно).

Мы делаем подобные вещи в реальной жизни, например пользуемся зонтом, если идёт дождь, или надеваем пальто, если холодно.

Посмотрите, как работает инструкция if в простой игре ниже. Цель — получить 6 очков при броске кубика.

Dice

Чтобы игра выполняла разные действия в зависимости от результата броска кубика, мы используем if с условием, которое проверяет, равен ли результат броска 6.

Если условие истинно (true), мы выводим «У вас 6!» и запускаем конфетти. А если условие ложно (false), мы выводим «Попробуй ещё».

Вот блок‑схема и код Python для игры:

start dice = random(1,6) false true Спробуй ще У вас 6! dice == 6? Condition dice = random.randint(1,6) if else: dice == 6: Condition print('У вас 6!🥳') launchConfetti() Code runs if condition is true print('Спробуй ще') Code runs if condition is false

Нам потрібно использовать else в коде выше, чтобы обработать случай, когда на кубике выпало не 6, чтобы мы могли вывести «Попробуй ещё».

Нажмите кнопку «Запустить пример» ниже, чтобы увидеть код броска кубика в действии.


Python:
dice = random.randint(1,6)
print('You rolled a ' + str(dice))

if dice == 6:
  print('У вас 6!🥳')
else:
  print('Спробуй ще')
JavaScript:
const dice = Math.floor(Math.random() * 6) + 1;
console.log('You rolled a ' + dice);

if (dice == 6) {
  console.log('У вас 6!🥳');
} else {
  console.log('Спробуй ще');
}
Java:
int dice = random.nextInt(6) + 1;
System.out.println("You rolled a " + dice);

if (dice == 6) {
  System.out.println("У вас 6!🥳");
} else {
  System.out.println("Спробуй ще");
}
C++:
int dice = rand() % 6 + 1;
cout << "You rolled a " + to_string(dice) + "\\n";

if (dice == 6) {
  cout << "У вас 6!🥳\\n";
} else {
  cout << "Спробуй ще\\n";
}
Запустить пример »

Когда следует использовать инструкцию if?

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

Например, если вы хотите, чтобы ваша программа выводила «Добро пожаловать!», когда пользователь вводит правильный пароль, и «Доступ запрещён», когда пользователь вводит неправильный пароль, следует использовать инструкцию if.


If, Else и Else If

Инструкция if всегда начинается с if.

Инструкция if может содержать ноль или много else if, а также ноль или один else.

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

Инструкция else гарантирует выполнение одного (и только одного) блока кода.

Иногда достаточно использовать только одну инструкцию if, вот так:


Python:
age = 32
print('Возраст ' + str(age))

if age > 17:
  print('Ты взрослый человек!')
JavaScript:
const age = 32;
console.log('Возраст ' + age);

if (age > 17) {
  console.log('Ты взрослый человек!');
}
Java:
int age = 32;
System.out.println("Возраст " + age);

if (age > 17) {
  System.out.println("Ты взрослый человек!");
}
C++:
int age = 32;
cout << "Возраст " + to_string(age) + "\\n";

if (age > 17) {
  cout << "Ты взрослый человек!\\n";
}
Запустить пример »

Але зазвичай ми також хочемо обробити випадок, коли умова не є істинною, тому для цього використовуємо інструкцію else.


Python:
age = 10
print('Возраст ' + str(age))

if age > 17:
  print('Ты взрослый человек!')
else:
  print('Ты еще не взрослый человек')
JavaScript:
const age = 10;
console.log('Возраст ' + age);

if (age > 17) {
  console.log('Ты взрослый человек!');
} else {
  console.log('Ты еще не взрослый человек');
}
Java:
int age = 10;
System.out.println("Возраст " + age);

if (age > 17) {
  System.out.println("Ты взрослый человек!");
} else {
  System.out.println("Ты еще не взрослый человек");
}
C++:
int age = 10;
cout << "Возраст " + to_string(age) + "\\n";

if (age > 17) {
  cout << "Ты взрослый человек!\\n";
} else {
  cout << "Ты еще не взрослый человек\\n";
}
Запустить пример »

Блок кода, принадлежащий else, будет выполнен только в том случае, если условие в if является false (ложным).

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


Python:
age = 15
print('Возраст ' + str(age))

if age < 13:
  print('Ты ребенок')
elif age < 20:
  print('Ты подросток')
else:
  print('Ты взрослый человек')
JavaScript:
const age = 15;
console.log('Возраст ' + age);

if (age < 13) {
  console.log('Ты ребенок');
} else if (age < 20) {
  console.log('Ты подросток');
} else {
  console.log('Ты взрослый человек');
}
Java:
int age = 15;
System.out.println("Возраст " + age);

if (age < 13) {
  System.out.println("Ты ребенок");
} else if (age < 20) {
  System.out.println("Ты подросток");
} else {
  System.out.println("Ты взрослый человек");
}
C++:
int age = 15;
cout << "Возраст " + to_string(age) + "\\n";

if (age < 13) {
  cout << "Ты ребенок";
} else if (age < 20) {
  cout << "Ты подросток";
} else {
  cout << "Ты взрослый человек";
}
Запустить пример »

Вы можете иметь только одну инструкцию if и только одну инструкцию else, но вы можете иметь сколько угодно инструкций else if.

Также инструкция if всегда идёт первой, else — всегда последней, а инструкции else if находятся между ними.


Вложенные инструкции If

Вложенные инструкции if — это инструкции if внутри другой инструкции if.

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


Python:
age = 19
print('Возраст ' + str(age))

if age < 13:
  print('Ты ребенок')
elif age < 20:
  print('Ты подросток')
  if age > 17:
    print('и взрослый человек!')
else:
  print('Ты взрослый человек')
JavaScript:
const age = 19;
console.log('Возраст ' + age);

if (age < 13) {
  console.log('Ты ребенок');
} else if (age < 20) {
  console.log('Ты подросток');
  if (age > 17) {
    console.log('и взрослый человек!');
  }
} else {
  console.log('Ты взрослый человек');
}
Java:
int age = 19;
System.out.println("Возраст " + age);

if (age < 13) {
  System.out.println("Ты ребенок");
} else if (age < 20) {
  System.out.println("Ты подросток");
  if (age > 17) {
    System.out.println("и взрослый человек!");
  }
} else {
  System.out.println("Ты взрослый человек");
}
C++:
int age = 19;
cout << "Возраст " + to_string(age) + "\n";

if (age < 13) {
  cout << "Ты ребенок";
} else if (age < 20) {
  cout << "Ты подросток";
  if (age > 17) {
    cout << "\и взрослый человек!";
  }
} else {
  cout << "Ты взрослый человек";
}
Запустить пример »

В приведённом выше коде вложенная инструкция if позволяет нам обработать особый случай возраста 18 и 19 лет, когда человек одновременно считается подростком и взрослым.

age = {{age}}  age < 13 true 'child' false false age < 20 true 'teen' age > 17 true 'and adult' 'adult'

Age

На блок‑схеме выше мы видим, что блок кода для age > 17 выполняется только тогда, когда age равен 18 или 19.