|
|||
Тема: Множественный выбор(switch-case)
Уточнение по поводу фигурных скобок в программе Аналогия с питоном: Там вы тело цикла или условные операторы выделяли табуляцией(4 пробела, ТАБ), в Си табуляция имеет важно значение лишь для красоты и читабельности вашего кода, но функцию, которая выполняется в Питоне, не выполняет. Для этого есть {}. Все, что заключено между ними будет выполнено в теле условного оператора и цикла. Например, If(a > b) Cout << a; (так можно писать, если в теле иф всего одна команда, но если вам нужно, чтобы выполнялось несколько действий при выполнении условия иф, то нам не обойтись без {} If(a>b){ c = a; Cout << c; } Else{ Cout << b } Тема: Множественный выбор(switch-case) Смысл работы, примерно, как у if. switch(условие){ case 1:условие; case 2:условие; case 3:условие; } Примечание: значение кейсов должно быть константой В кейсе может быть множество условий, при этом выделять их {} не нужно Пример, вам нужно считать число от 1 до 3 и назвать это число. Эту задачу можно решать ифами, но куча однотипных ифов выглядят не очень профессионально, намного правильнее и понятнее выглядит код с использованием switch-case сin >> a; switch(a){ case 1:cout << “единица”; case 2:cout << “двойка”; case 3: cout << “тройка”; } Что выведет программа, если вы введете 3? Тройка А если 2? Вот тут выходит фишка switch-case. Такой switch-case используется крайне редко и имеет название - fall-through Чтобы это исключить fall-through, после каждого блока условий нужно ставить break; Break – это оператор, завершающий выполнение ближайшего включающего цикла или условного оператора, в котором он отображается. И тогда программа выглядит следующим образом: cin >> a; switch(a){ case 1:cout << “единица”; break; case 2:cout << “двойка”; break; case 3: cout << “тройка”; break; } Вот теперь при считывании 2, ответ будет “двойка” Если у нас задача немного меняет свое условие. Считайте число и, если оно от 1 до 3, назовите его, иначе выведите “-1”. Для этого есть case по умолчанию, то есть тот кейс, который выполниться, если ни один из case не соответствует условию в switch; Записывается он как default: условие Обычно его записывают после всех кейсов Тогда решением для нашей задачи выше является код: cin >> a; switch(a){ case 1:cout << “единица”; break; case 2:cout << “двойка”; break; case 3: cout << “тройка”; break; default: cout << “-1”;break; } Небольшие тонкости; Внутри кейсов можно создавать переменные, но не задавать им изначальные значения То есть switch(a){ switch(a){ Также, если мы создали переменную в одном из кейсов, мы можем использовать ее в другом case, но только в пределах этого switch. Следующая тема занятия ЦИКЛ Цикл –это многократное выполнение одинаковых действий Существует два вида циклов: 1) Цикл с известным количеством выполнений 2) Цикл с неизвестным количеством выполнений Пример 1) Нужно 20 раз вывести слово “Привет” Это легко вывести, написав 20 раз cout << “Привет”; А если потребуется вывести 100 таких приветствий или 1000? Для этого и нужны циклы Блок-схема цикла такова Начало Сделали 20 раз ------à да конец Нет выводим привет Как выглядит выполнение на псевдокоде – язык описания алгоритма счетчик = 0 пока счетчик < 10 cout << "Привет" << endl; уменьшить счетчик на 1 int count = 0; while (count < 10) { cout << "Привет" << endl; count--; } Пример 2) Определить количество цифр в числе, считанного с клавиатуры int count = 0, n; cin >> n; while (n > 0) { n /= 10; count++; } Давайте проверим, как вы поняли Какое значение будет в переменной после выполнения цикла a = 4; b = 6; while (a < b) { a++; } Ответ 6 a = 4; b = 6; while (a < b) { a += b; } Ответ 10 a = 4; b = 6; while (a < b) { a--; } Ответ зацикливание Зацикливание – цикл, который никогда не закончит свое выполнение, так как условие while никогда не будет ложным. While, как вы уже могли заметить, сначала проверяет условие, а потом выполняет действия в теле цикла. Но, что делать, если нам нужно сначала выполнить действие, а потом проверить условие, в этом случае нам поможет do-while do { cout << "Введите число < 0"; cin >> n; } while (n >= 0); Заметьте, что в данном случае мы должны поставить ; после while. То есть наша программа будет работать, пока мы не введем число < 0
|
|||
|