Цикл do whileЦикл do while — це синтаксична конструкція керування послідовністю виконання операторів програми, призначена для повторення виконання щонайменше одного разу блока операторів. Рішення про повторне виконання приймається в кінці блока, в залежності від умови логічного виразу. ![]() do while Конструкція Оскільки цикл Можливо, а в деяких випадках і бажано, щоб умова завжди виявлялась істинною, створюючи нескінченний цикл. Якщо такий цикл створюється навмисно, то використовують додаткові структури керування (наприклад, оператор У різних мовах використовуються різні правила запису цього типу циклу. Наприклад, у мові програмування Pascal такий тип циклу оформлюється як Еквівалентні конструкціїТака синтаксична конструкція do {
loop_block();
} while (condition);
рівнозначна loop_block();
while (condition) {
loop_block();
}
Записаний таким чином цикл Без застосування оператора while (true) {
loop_block();
if (!condition) break;
}
або LOOPSTART:
do_work();
if (condition) goto LOOPSTART;
Конструкція do while в мовах програмуванняНаведені приклади різними мовами програмування демонструють розрахунок факторіалу числа 5 із використанням циклу AdaПриклад мовою програмування Ada: with Ada.Integer_Text_IO;
procedure Factorial is
Counter : Integer := 5;
Factorial : Integer := 1;
begin
loop
Factorial := Factorial * Counter;
Counter := Counter - 1;
exit when Counter = 0;
end loop;
Ada.Integer_Text_IO.Put (Factorial);
end Factorial;
BASICРанні діалекти BASIC (такі як GW-BASIC) використовували синтаксис Типовий код Dim factorial As Integer
Dim counter As Integer
factorial = 1
counter = 5
Do
factorial = factorial * counter
counter = counter - 1
Loop While counter > 0
Print factorial
C#Приклад на C#: int counter = 5;
int factorial = 1;
do {
factorial *= counter--; /* Multiply, then decrement. */
} while (counter > 0);
System.Console.WriteLine(factorial);
CПриклад на C: int counter = 5;
int factorial = 1;
do {
factorial *= counter--; /* Multiply, then decrement. */
} while (counter > 0);
printf("factorial of 5 is %d\n", factorial);
Оператори C++Приклад на C++: int counter = 5;
int factorial = 1;
do {
factorial *= counter--;
} while (counter > 0);
std::cout << "factorial of 5 is "<< factorial << std::endl;
DПриклад на D: int counter = 5;
int factorial = 1;
do {
factorial *= counter--; // Помножили, потім зменшили
} while (counter > 0);
writeln("factorial of 5 is ", factorial);
FortranПриклад на Fortran. Стандартний FORTRAN 77 не має конструкції INTEGER CNT,FACT
CNT=5
FACT=1
1 CONTINUE
FACT=FACT*CNT
CNT=CNT-1
IF (CNT.GT.0) GOTO 1
PRINT*,FACT
END
Fortran 90 й пізніші діалекти також не мають цієї конструкції, але вони мають звичайний цикл program FactorialProg
integer :: counter = 5
integer :: factorial = 1
factorial = factorial * counter
counter = counter - 1
do while (counter > 0) ! Перевіряємо цикл до входу в цикл
factorial = factorial * counter
counter = counter - 1
end do
print *, factorial
end program FactorialProg
JavaПриклад на Java: int counter = 5;
int factorial = 1;
do {
factorial *= counter--; /* Множимо, потім зменшуємо */
} while (counter > 0);
System.out.println("The factorial of 5 is " + factorial);
JavaScriptПриклад на JavaScript[2]: let counter = 5; //Оголошуємо дві змінні - лічильник та факторіал
let factorial = 1;
do {
factorial *= counter--; //Тіло циклу
} while (counter > 0); //Умова циклу
console.log(factorial); //Показуємо результат
PascalPascal замість конструкції factorial := 1;
counter := 5;
repeat
factorial := factorial * counter;
counter := counter - 1;
until counter = 0;
PythonPython також не має окремої конструкції counter = 5
factorial = 1
while True:
factorial *= counter
counter -= 1
if counter == 0:
break
print(factorial)
Див. такожПримітки
|
Portal di Ensiklopedia Dunia