3.2.4. do-while

El aspecto de do-while es

do
    sentencia
while(expresión);

El do-while es diferente del while ya que la sentencia siempre se ejecuta al menos una vez, aún si la expresión resulta false la primera vez. En un while normal, si la condición es falsa la primera vez, la sentencia no se ejecuta nunca.

Si se utiliza un do-while en Guess.cpp, la variable guess no necesitaría un valor ficticio inicial, ya que se inicializa por la sentencia cin antes de que la variable sea evaluada:

//: C03:Guess2.cpp
// The guess program using do-while
#include <iostream>
using namespace std;

int main() {
  int secret = 15;
  int guess; // No initialization needed here
  do {
    cout << "guess the number: ";
    cin >> guess; // Initialization happens
  }   while(guess != secret);
  cout << "You got it!" << endl;
} ///:~

Listado 3.4. C03/Guess2.cpp


Por alguna razón, la mayoría de los programadores tienden a evitar el do-while y se limitan a trabajar con while.