В чем разница между циклами while и do-while?

«В чем разница между циклами while и do-while?» — вопрос из категории Основы программирования, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Основное отличие — в порядке выполнения проверки условия.

Цикл while (цикл с предусловием)

  • Порядок: Сначала проверяется условие. Если оно true, выполняется тело цикла.
  • Количество итераций: От 0 до бесконечности (может не выполниться ни разу).
  • Синтаксис (Java/C#/JS):
    while (condition) {
        // Тело цикла
    }
  • Пример:
    int count = 10;
    while (count < 10) { // Условие false с первого раза
        System.out.println("Этот код никогда не выполнится.");
    }

Цикл do-while (цикл с постусловием)

  • Порядок: Сначала однократно выполняется тело цикла, затем проверяется условие. Если оно true, цикл повторяется.
  • Количество итераций: От 1 до бесконечности (гарантированно выполнится хотя бы один раз).
  • Синтаксис (Java/C#/JS):
    do {
        // Тело цикла
    } while (condition);
  • Пример:
    int count = 10;
    do {
        System.out.println("Этот код выполнится 1 раз, несмотря на условие.");
        count++;
    } while (count < 10); // Условие проверяется ПОСЛЕ выполнения

Когда использовать?

  • while — когда количество итераций неизвестно, и возможно нулевое выполнение (например, чтение данных до маркера конца).
  • do-while — когда действие нужно выполнить минимум один раз, а затем, возможно, повторить (например, меню выбора в консоли).