Ветвления в С++
Чтобы указать условие при выполнении которого будет выполняться определенный код, а при невыполнении другой код, потребуется прибегнуть к следующим структурам:
Условия if-if else-else
#include <iostream>
#include <string>
using namespace std;//Пространство имён
int main()
{
setlocale(0,"");//Кириллица
int age=120;
string tx;
if (age>0 && age<18)
{
tx="Ребенок";
}
else if(age>=18 and age<=100)
{
tx="Взрослый";
}
else
{
tx="Ошибка!";
}
cout << "Вы " << tx << endl;
system("pause");//Команда задержки экрана
return 0;
}
Операнды:
- == - сравнение
- > - больше
- < - меньше
- >= - больше или равно
- <= - меньше или равно
- ! – не
- || - логическое И
- && - логическое ИЛИ
- floor(x) – округляет в меньшую сторону
- round(x) – округляет математически
- ceil(x) – округляет в большую сторону
- n++ и n-- - инкрементация, декрементация
switch – оператор условия
#include <iostream>
#include <string>
using namespace std;//Пространство имён
int main()
{
setlocale(0,"");//Кириллица
int fl=50;
switch(fl)
{
case 1://Если fl==1
cout << "fl==1" << endl;
break;//Прерывание
case 2://Если fl==2
cout << "fl==2" << endl;
break;//Прерывание
default://Иначе
cout << "Иначе fl=="<< fl << endl;
break;//Прерывание
}
system("pause");//Команда задержки экрана
return 0;
}
Тернарный оператор - = ? :
Тернарный оператор имеет следующую структуру: переменная = (условие) ? если да : иначе;
Пример:
#include <iostream>
#include <string>
namespace std;//Пространство имён
int main()
{
setlocale(0,"");//Кириллица
int i=9;
string tx=i>=10?"Больше или равно 10":"Меньше 10";
cout << tx << endl;
system("pause");//Команда задержки экрана
return 0;
}
Можно использовать вложено, как if-elseif-else
...
int a=9, b=4;
string tx=(a==b)?"a равно b":(a>b)?"a больше b":"a меньше b";//равно, больше или меньше
...
Оператор goto
Оператор goto — это оператор управления потоком выполнения программ, который заставляет центральный процессор выполнить переход из одного участка кода в другой (осуществить прыжок).
Пример:
#include <iostream>
#include <string>
using namespace std;//Пространство имён
int main()
{
setlocale(0,"");//Кириллица
cout << "Один" << endl;
goto kuda;//От сюда
cout << "Два" << endl;//Пропускает
kuda://Прыгает сюда
cout << "Три" << endl;
system("pause");//Команда задержки экрана
return 0;
}
Директивы #ifdef и #ifndef
Директивы #ifdef и #ifndef («если определено» и «если не определено») используют в условной компиляции. Стандартный вид следующий:
#include <iostream>
#include <string>
using namespace std;//Пространство имён
#define GEN//Определяем
#define nGEN//Определяем
int main()
{
setlocale(0,"");//Кириллица
#ifdef GEN
cout << "GEN определен" << endl;
#else
cout << "GEN НЕ определен" << endl;
#endif
#ifndef nGEN
cout << "nGEN НЕ определен" << endl;
#else
cout << "nGEN определен" << endl;
#endif
system("pause");//Команда задержки экрана
return 0;
}
Директива Try-catch-throw
Чтобы комфортно работать с исключениями в С++ вам нужно знать лишь три ключевых слова:
- try (пытаться) - начало блока исключений;
- catch (поймать) - начало блока, "ловящего" исключение;
- throw (бросить) - ключевое слово, "создающее" ("возбуждающее") исключение.
А теперь пример, демонстрирующий, как применить то, что вы узнали:
#include <iostream>
#include <string>
using namespace std;//Пространство имён
int main()
{
setlocale(0,"");//Кириллица
try
{
throw 1;
//throw 'a';
}
catch (long b)
{
cout << "пойман тип long: " << b << endl;
}
catch (char b)
{
cout << "пойман тип char: " << b << endl;
}
system("pause");//Команда задержки экрана
return 0;
}