Задача-ребус:
что будет выведено на экран?
int n = 3;
int i = 0;
switch (n % 2) {
case 0:
do {
++i;
case 1:
++i;
} while (--n > 0);
}
std::cout << i;
При n = 3
, остаток от деления (n % 2)
равен 1, соответственно в конструкции switch/case
происходит переход на метку 1 (case 1:
) и переменная i увеличивается на 1.
Далее значение n уменьшается на 1 и проверяется условие выхода из цикла.
n = 2
, что больше 0. Выхода из тела цикла нет, таким образом выполнение продолжается с начала блока do {
. В теле цикла происходит увеличение переменной i на 2 (++i; case 1: ++i;
). Конструкция switch/case
в данном случаи уже не "работает". Значение n уменьшается на 1 и проверяется условие выхода из цикла.
n = 1
, условие выхода из цикла не выполнено, повторяется предыдущий пункт. Переменная i увеличивается еще на 2.
n = 0
, цикл завершается и соответственно конечное значение i равно 5.
Проверка онлайн
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Задача: В одномерном целочисленном массиве (размер массива (не больше 20) и значения его элементов вводить с клавиатуры) вычислить сумму элементов...
Мне пришлось переписать связку QLabel-QPixmap на связку QGraphicsView-QGraphicsScene-QGraphicsPixmapItem-QPixmapИ вышло как-то совсем не очень
Необходимо значение double преобразовать в цвет, чтобы потом использовать в функции SetPixel(x,y,qRGB)Есть такой код преобразования, но по-моему он не работает
У меня есть односвязный списокВ нем надо перегрузить [] так, чтоб был доступ к элементу в заданной позиции