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

Введение

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

Принятие решений конкретно означает, что вы будете сравнивать данные или операторы C++. Мы можем сделать это с помощью числовых или символьных операторов. Логические операторы работают слева направо. Теперь мы можем запросить информацию и принять решение.

[Если] Заявление

Использование [if] позволяет вам принимать решения в своих утверждениях. Они будут выполняться только [если] мы выполним условие. Вот как [if] работает. Например, если одно условие истинно, ваш код может перейти к определенной части и что-то выполнить. Если условие ложно, оно пойдет в другом направлении.

Синтаксис оператора «если» выглядит следующим образом:

if (condition)
{
Do something based on condition
}

Цель оператора «если» — оценить условие. Вы можете проверить, является ли что-то правдой или ложью. Например, спрашивается, больше ли температура 100 или меньше 0. Затем в вашем блоке между фигурными скобками программа делает что-то на основе условия.

Недостатки условных выражений

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

Принятие решений с помощью оператора if

#include <iostream>

int main()
{
// variables
float gpa;

// get input
std::cout << "Please enter your gpa" << std::endl;
std::cin >> gpa;

// conditional
if (gpa>=3.0)
{
  std::cout << "You have good grades, nice going!" << std::endl;
}

  return 0;
}

Это наш первый пример. Помните, что строки, начинающиеся с «//», предназначены для комментариев. Они просто документируют код.

Итак, в этой программе я хотел спросить чей-то gpa. Тогда я хотел поздравить их, если это было хорошо.

  • созданная переменная
  • получил ввод от пользователя
  • сделал условное
  • выводить результат

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

Из кода видно, что мое условие было «›=3.0». Когда я запустил этот код, я ввел 3.2. Я возлагаю на себя большие надежды, как видите! В любом случае, поскольку условие было больше или равно 3,0, выводилось поздравительное сообщение.

Что произойдет, если мой средний балл ниже 3,0? Что будет делать мой код? Поскольку у программы нет пути, по которому она могла бы пойти, если условие ложно, она сделает что-то бесполезное. Нам нужно добавить условие, которое составляет менее 3,0 гПа. Затем нам нужно сообщить программе, что она должна делать в этот момент.

#include <iostream>

int main()
{
// variables
float gpa;

// get input
std::cout << "Please enter your gpa" << std::endl;
std::cin >> gpa;

// if conditional is true
if (gpa>=3.0)
{
  std::cout << "You have good grades, nice going!" << std::endl;
}
// if conditional is false
else
    std::cout << "You need to work harder" << std::endl;

  return 0;
}

В этом примере я добавил условие «еще». Это сообщает программе, что делать, если исходное условное выражение ложно. Итак, если наш средний балл ниже 3,0, то программа говорит нам работать усерднее. Я также выделил цветом внесенные изменения, чтобы их было легко увидеть.

С операторами «если» вы можете использовать их в любом месте вашей программы. Может быть несколько условий и сделать несколько вещей. Мы также можем тестировать условия как строки или другие переменные. Вот еще один пример.

#include <iostream>

int main()
{
// variables
std::string fav_pokemon;

// get input
std::cout << " Try to guess my favorite Pokemon " << std::endl;
std::cin >> fav_pokemon;

// conditional
if (fav_pokemon == "darkrai")
  std::cout << " You guessed right! " << std::endl;
else
  std::cout << " Sorry, that is incorrect " << std::endl;

return 0;
}

В этой программе я прошу вас угадать моего любимого покемона. Достаточно легко, верно! Как видите, на этот раз я использую строки для получения строкового ввода. Все это очень просто, но это показывает вам, как вы можете использовать операторы «если».

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

#include <iostream>
int main()
{
// variables
std::string fav_pokemon;
// get input
std::cout << " Try to guess my favorite Pokemon " << std::endl;
std::cin >> fav_pokemon;
// conditional
if (fav_pokemon == "darkrai" || fav_pokemon == "vileplume") 
 std::cout << " You guessed right! " << std::endl;
else
 std::cout << " Sorry, that is incorrect " << std::endl;
return 0;
}

Как вы можете видеть выше, я проверил, что Darkrai или Vileplume верны. Так что, если человек угадал и то, и другое, то он понял мое истинное послание.

Комплексное ветвление

Ранее мы просто использовали простую форму управления потоком. Одно «если» и одно «иначе». Однако у нас больше возможностей. Может быть несколько ответвлений. Мы называем эти вложенными операторами.

Делайте отступы на каждом уровне вложенности. Это облегчает чтение кода и предотвращает глупые ошибки. Старайтесь, чтобы все уровни были одинаковыми. Вы можете использовать клавишу «Tab» или что угодно.

Будьте осторожны при разработке своих утверждений «если еще». Легко получить вашу программу там, где она будет компилироваться, но вы получите неправильный результат. Убедитесь и используйте фигурные скобки для управления потоком вашей программы. Вы же не хотите, чтобы компилятор выдавал неверное значение из-за логической ошибки. Их может быть трудно отследить, потому что нет никаких предупреждений.

Компилятор соединяет «else» с ближайшим «if», который еще не соединен. Это цель фигурных скобок, поэтому вы можете убедиться, что программа движется в том направлении, в котором она должна.

#include <iostream>

int main()
{
// variables
float gpa;

// get input
std::cout << "Please enter your gpa" << std::endl;
std::cin >> gpa;

// conditional
if (gpa >= 3.8)
  std::cout << " Those are exceptional grades " << std::endl;
else if (gpa >= 3.0)
  std::cout << "You have good grades, nice going!" << std::endl;
else
  std::cout << "You need to work harder" << std::endl;

return 0;
}

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

Теперь, если gpa находится между 3,0 и 3,8, это вызывает другое сообщение, которое является более точным. Если ни одно из условий не выполняется, то в конце отобразится наш обратный оператор.

В следующем примере я делаю то же самое с моей программой угадывания покемонов.

#include <iostream>

int main()
{
// variables
std::string fav_pokemon;

// get input
std::cout << " Try to guess my favorite Pokemon " << std::endl;
std::cin >> fav_pokemon;

// conditional
if (fav_pokemon == "darkrai")
  std::cout << " You guessed right! " << std::endl;
else if (fav_pokemon == "vileplume")
  std::cout << " I like that pokemon too ";
else
  std::cout << " Sorry, that is incorrect " << std::endl;

return 0;
}

Вместо того, чтобы использовать логику «или» или «и» в моем условном выражении, я разбиваю его и использую «иначе, если». Это просто еще один способ сделать это. Помните, мы проверяем условия сверху. Как только условие истинно, остальная часть блока пропускается.

Имейте в виду, что любой оператор за пределами блока «если» будет выполняться всегда. Это потому, что это не является частью условий, поэтому оно не проверяется и является обычным оператором C++.

Вывод

C++ действительно классный язык. Несмотря на свой возраст, он все еще обновляется и является одним из лучших языков. Для аппаратного программирования он по-прежнему остается королем, и в ближайшее время ничто не заменит его. Однако вы можете делать в нем гораздо больше, чем аппаратное программирование.

Спасибо за чтение

Спасибо, что прочитали это, я очень ценю это.

Если вы хотите подписаться на мою рассылку, вы можете сделать это здесь:

Информационный бюллетень Джейсона

Если вам нужен совет о том, что читать дальше, попробуйте эти статьи C++:

Изучение C++ для начинающих

Использование переменных в C++

Первоначально опубликовано на https://aindien.com 2 августа 2021 г.