Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте While, Do-While | Оператори управління
Основи C

book
While, Do-While

Уявіть ситуацію, коли вам потрібно повторно виконувати певні завдання, такі як зчитування даних з датчика, спроби введення паролів або підрахунок слів у реченні. У таких ситуаціях на допомогу приходять цикли.

Цикли дозволяють виконувати певні блоки коду кілька разів, будь то десятки, сотні або навіть тисячі разів. Розуміння концепції циклів є важливим у програмуванні. Цей курс занурюється у основні цикли: while цикл, do-while цикл і for цикл.

While Цикл

Цей цикл продовжує виконуватися доки виконується певна умова. Як тільки умова не задовольняється, цикл зупиняється.

python
while (condition)
{
// loop_body
}

Основне використання циклу - це відображення кількості його повторень:

c

Main

copy
#include <stdio.h>

int main()
{

int iterations = 1; // interesting string
while (iterations <= 10 )
{
printf("%d\n", iterations);

iterations++; // iterations = iterations + 1;
}

return 0;
}
12345678910111213141516
#include <stdio.h> int main() { int iterations = 1; // interesting string while (iterations <= 10 ) { printf("%d\n", iterations); iterations++; // iterations = iterations + 1; } return 0; }

Щоб зупинити цей цикл, необхідна умова завершення. Простий підхід - використання лічильника для відстеження кількості разів, коли цикл виконується.

Примітка

Ітерація відноситься до одного циклу в межах циклу. Отже, якщо цикл виконує блок коду 10 разів, він завершив 10 ітерацій.

Рядок iterations++; є важливим, оскільки він збільшує лічильник (int iterations) з кожним проходом. Лічильник потім встановлює умови для завершення циклу.

Примітка

Важливо встановити умови для виходу з циклу. Якщо цього не зробити, це призведе до нескінченного циклу.

Давайте створимо програму, щоб продемонструвати елементи цілочисельного масиву:

c

Main

copy
#include <stdio.h>

int main()
{
int array[] = {3, 6, 2, 134, 45,
2, 564, 8, 3, 531};

int i = 0; // index of array
while (i < 10 )
{
printf("Index of element: %d\tValue of element: %d\n", i, array[i]);
i++; // i = i + 1
}

return 0;
}
1234567891011121314151617
#include <stdio.h> int main() { int array[] = {3, 6, 2, 134, 45, 2, 564, 8, 3, 531}; int i = 0; // index of array while (i < 10 ) { printf("Index of element: %d\tValue of element: %d\n", i, array[i]); i++; // i = i + 1 } return 0; }

Зосередьтеся на виразі array[i]. Тут змінна i позначає індекс елементів array[].

Примітка

Ітерація відноситься до кількості циклів у циклі.

З кожним циклом змінна i збільшується на 1. Це означає, що під час кожного циклу вираз array[i] отримує доступ до наступного елемента масиву:

do-while

Ключова відмінність між циклами do-while та while полягає в тому, що перший гарантує принаймні одне виконання, навіть якщо його умова спочатку хибна.

python
do
{
// do_something
}

while (condition);

Приклад:

c

Main

copy
#include <stdio.h>

int main()
{
int i = 0;
do
{
printf("Condition `i == 1` is false, because i = 0, but loop is working...\n");
}

while (i == 1);

printf("Loop is over\n");

return 0;
}
12345678910111213141516
#include <stdio.h> int main() { int i = 0; do { printf("Condition `i == 1` is false, because i = 0, but loop is working...\n"); } while (i == 1); printf("Loop is over\n"); return 0; }

Цей тип циклу зручний для створення базових інтерфейсів користувача. Наприклад, при запиті пароля програма буде повторно запитувати, поки користувач не введе правильний:

c

Main

copy
#include <stdio.h>

int main()
{
int userInput[] = { 111, 222, 333, 444 }; // arrays of passwords
int i = 0; // index of element

do
{
printf("You entered password: %d | incorrect\n", userInput[i]);

i++;
}
while (userInput[i] != 444);

printf("You entered password: %d | correct\n", userInput[i]);

return 0;
}
1234567891011121314151617181920
#include <stdio.h> int main() { int userInput[] = { 111, 222, 333, 444 }; // arrays of passwords int i = 0; // index of element do { printf("You entered password: %d | incorrect\n", userInput[i]); i++; } while (userInput[i] != 444); printf("You entered password: %d | correct\n", userInput[i]); return 0; }
question mark

Яке значення буде мати x на 6-й ітерації?

int x = -5;
int i = 0;

do
{
x++;
i++;
}
while (x < 9);

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 4. Розділ 5

Запитати АІ

expand
ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

We use cookies to make your experience better!
some-alt