Хелпикс

Главная

Контакты

Случайная статья





Тема: Множественный выбор(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){
case 1: int z; z = 5; cout << a + 5; break;} - так можно делать

switch(a){
case 1: int z = 5; cout << a + 5; break;} – а вот так уже нельзя

Также, если мы создали переменную в одном из кейсов, мы можем использовать ее в другом 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

 



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.