|
|
||
8. Основные использования ветвлений if/else |
||
Ветвления if/else активно используются для проверки ошибок. Например, чтобы вычислить квадратный корень значения, параметр, который передается в функцию для вычисления, — обязательно должен быть положительным: #include <iostream>
#include <cmath> // для функции sqrt()
void printSqrt(double value)
{
if (value >= 0.0)
std::cout << "The square root of " << value << " is " << sqrt(value) << "\n";
else
std::cout << "Error: " << value << " is negative\n";
}
Также операторы if используют для ранних возвратов — когда функция возвращает управление обратно в caller еще до завершения выполнения самой функции. В программе, приведенной ниже, если значением параметра является отрицательное число, то функция сразу же возвращает в caller символьную константу или перечислитель в качестве кода ошибки: #include <iostream>
enum class ErrorCode
{
ERROR_SUCCESS = 0,
ERROR_NEGATIVE_NUMBER = -1
};
ErrorCode doSomething(int value)
{
// Если параметром value является отрицательное число,
if (value < 0)
// то сразу же возвращаем код ошибки
return ErrorCode::ERROR_NEGATIVE_NUMBER;
// Что-нибудь делаем
return ErrorCode::ERROR_SUCCESS;
}
int main()
{
std::cout << "Enter a positive number: ";
int a;
std::cin >> a;
if (doSomething(a) == ErrorCode::ERROR_NEGATIVE_NUMBER)
{
std::cout << "You entered a negative number!\n";
}
else
{
std::cout << "It worked!\n";
}
return 0;
}
Ветвления if/else также обычно используют для выполнения простых математических операций. Например, рассмотрим функцию min(), которая возвращает минимальное из двух чисел: int min(int a, int b)
{
if (a > b)
return b;
else
return a;
}
Эта функция настолько проста, что её можно записать с помощью условного тернарного оператора: int min(int a, int b)
{
return (a > b) ? b : a;
}
|
||
Нулевые стейтменты Также в C++ можно не указывать основную часть оператора if. Такие стейтменты называются нулевыми стейтментами (или «null-стейтментами»). Объявить их можно, используя точку с запятой вместо выполняемой операции. В целях улучшения читабельности кода, точка с запятой нулевого стейтмента обычно пишется с новой строки. Таким образом, мы явно указываем, что хотим использовать null-стейтмент, уменьшая вероятность не заметить его использования: if (a > 15)
; // это нулевой стейтмент
|
||
|
||
8 |