Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Алгоритмизация и программирование .doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.35 Mб
Скачать

4.6. Оператор цикла do while

Общая форма записи оператора цикла do while

do

оператор

w

оператор

hile (условие);

TRUE FALSE

Выход из цикла

Переход на следующий

Оператор программы

В операторе цикла do while сначала выполняется оператор, а затем проверяется условие. Повторение цикла происходит до тех пор, пока условие не примет значение false. Оператор может быть как простым, так и составным. В случае составного оператора тело цикла должно быть заключено в фигурные скобки.

Оператор do while - это цикл с постусловием, так как решение выполнять тело цикла или нет принимается после его прохождения.

Пример 4_8. Использование оператора цикла do while для расчета суммы нечетных чисел в диапазоне от 1 до 10.

#include "stdafx.h"

using namespace System;

int main()

{

int n = 1, sum = 0;

do

{

sum += n;

Console::WriteLine("Сейчас n = " + n + "\t sum = " + sum);

n += 2;

}

while (n <= 10);

Console::WriteLine("Окончательный результат: \n" +

"n = " + n + "\t sum = " + sum);

Console::ReadLine();

return 0;

}

Результат работы программы:

Сейчас: n = 1 sum = 1

Сейчас: n = 3 sum = 4

Сейчас: n = 5 sum = 9

Сейчас: n = 7 sum = 16

Сейчас: n = 9 sum = 25

Окончательный результат:

n = 11 sum = 25

4.7. Применение оператора continue

С помощью оператора continue можно организовать преждевременное завершение шага итерации в обход обычной структуры управления циклом. Оператор continue осуществляет принудительный переход к следующему шагу цикла, пропуская любой код, оставшийся невыполненным.

В циклах while и do while оператор continue вызывает передачу управления непосредственно условному выражению, после чего продолжается процесс выполнения цикла.

В операторе цикла for сначала вычисляется итерационное выражение, затем условное выражение, после чего цикл продолжается.

Пример 4_9. Использование оператора continue.

#include "stdafx.h"

using namespace System;

int main()

{

int n;

Console::Write("Нечетные числа в диапазоне от 1 до 10:");

for (n = 1; n < 10; n++)

{

if (n % 2 == 0)

continue;

Console::Write("{0,5}", n);

}

Console::ReadLine();

return 0;

}

Результат работы программы:

Нечетные числа в диапазоне от 1 до 10: 1 3 5 7 9

4.8. Оператор goto

Имеющийся в C++ оператор представляет собой оператор безусловного перехода. Когда в программе встречается оператор goto, ее выполнение переходит непосредственно к тому месту, на которое указывает этот оператор.

Для выполнения оператора goto требуется метка – действительный в C++ идентификатор с двоеточием. Метка должна находиться в том же методе, где и оператор goto, а также в пределах той же самой области действия.

x=1;

loop1:

x++;

if ( x<100)

goto loop1;

Применять оператор goto в программах не рекомендуется, т.к. его наличие очень сильно сказывается на надежности программирования.

Тестовые задания

ЗАДАНИЕ 1

Определите результат работы программы

int main()

{

int a = 5, b = 0;

if (a > 5)

b = a;

b += 10;

Console::WriteLine("a={1}, b={1}", a, b);

return 0;

}

Варианты ответов

1. a=10, b=10

2. a=10, b=15

3. a=10, b=0

4. a=10, b=5

ЗАДАНИЕ 2

Определите результат работы программы

int main()

{

int a = 5, b = 0;

if (a > 10) ;

else

b = a;

b += 10;

Console::WriteLine("a={0}, b={1}", a, b);

return 0;

}

Варианты ответов

1. a=5, b=0;

2. a=5, b=10

3. a=5, b=5

4. a=5, b=15

ЗАДАНИЕ 3

Определите результат работы программы

int main()

{

int a = 12, b = 2, c =- 1;

if (a < b && c < b)

{

c += a * b;

Console::Write(" c= " + c);

}

else

{ c += a - b;

Console::Write(" c = " + c);

}

return 0;

}

Варианты ответов

1. c = 10

2. c = 24

3. c = 9

4. c = 23

ЗАДАНИЕ 4

Определите результат работы программы

int main()

{

int i, s = 0;

for (i = 2; i< 5; i++)

{

s += i * i;

Console::WriteLine(" s= {0}",s);

}

Console::WriteLine(" Итог: s={0} ",s);

return 0;

}

Варианты ответов

  1. s=4

s=9

s=16

Итог: s=16

  1. s=4

s=13

s=29

Итог: s= 29

  1. s=4

s=7

s=11

Итог: s= 11

  1. s=4 s=9 s=16

Итог: s=16

ЗАДАНИЕ 5

Определите результат работы программы

int main()

{

int i, k=0;

for (i = 1; i < 8; i++)

{

if (i % 2 == 1)

continue;

k += i;

}

Console::WriteLine("k="+k);

return 0;

}

Варианты ответов

1. k=12

2. k=1

3. k=6

4. k=0

ЗАДАНИЕ 6

Переменная k после завершения цикла будет содержать значение ….

int i, k=32;

do

{

k= k-2;

}

while (k<5);

Варианты ответов

1. 32

2. 4

3. 28

4. 30

ЗАДАНИЕ 7

Определите результат работы программы

int main()

{

int m=4;

do

{

Console::Write("m=" + m + " ");

m += 3;

}

while ( m < 20);

return 0;

}

Варианты ответов

1. m=7 m=10 m=13 m=16 m=19

2. m=4 m=7 m=10 m=13 m=16 m=19

3. m=4

4. m=7

ЗАДАНИЕ 8

Переменная k после завершения цикла будет содержать значение ….

int i, k=-5;

while( k>5)

{

k= k+2;

}

Варианты ответов

1. 5

2. -5

3. 0

4. -3

ЗАДАНИЕ 9

Определите результат работы программы

int main()

{

int i = 20;

while (i< 30)

{

Console::WriteLine("i = " + i);

i += 30;

}

Console::WriteLine("Итог i = " + i);

return 0;

}

Варианты ответов

1. i=20

Итог i=50

2. i=20

i=50

Итог i=50

3. i=20

Итог i=20

4. Итог i=20

ЗАДАНИЕ 10

Определите результат работы программы

int main()

{

int i=2, k=0;

while(i<10)

{

i++;

if (i % 2 == 0)

continue;

k += i;

}

Console::WriteLine("k="+k);

return 0;

}

Варианты ответов

1. k=0

2. k=3

3. k=24

4. k=14