O comando Do While (faça… enquanto) executa um comando repetidamente até que a condição de término especificada retorne falso.
A instrução break termina a execução do laço mais próximo em que ela aparece.
A diferença entre o comando While visto no post anterior e o comando Do…While é que neste a instrução ou bloco de instruções é executado uma vez, veja o exemplo abaixo:
No exemplo abaixo você pode ver que o Do While executa uma vez independe da condição falsa:
// Exemplo comando while
while (false)
{
printf("While imprime \n"); // C++
// System.out.println("While imprime"); // Java
// Console.WriteLine("While imprime"); // C#
}
// Exemplo de comando do while
do
{
printf("Do While iprime \n");
// System.out.println("Do While imprime"); // Java
// Console.WriteLine(Do "While imprime"); // C#
}
while (false);
A seguir temos os resultados do exercício anterior.
Exibindo numero primos:
Java
import java.io.Console;
import java.util.*;
public class Cad {
public static void main(String[] args)
{
int Nprimo = 2;
int numeros = 1;
do
{
for (Nprimo = 2; Nprimo <= numeros - 1; Nprimo++)
{
if ((numeros % Nprimo) == 0)
{
break; // pula numeros nao primos
}
}
if (Nprimo == numeros)
System.out.print(numeros + ", ");
numeros = numeros + 1;
} while (numeros <= 1000);
}
}
C++
// ConsoleApplication29.cpp : Defines the entry point for the console application. //
#include "stdafx.h"
#include <iostream>
using namespace std;
int main(void)
{
int Nprimo = 2;
int numeros = 1;
do { for (Nprimo = 2; Nprimo <= numeros - 1; Nprimo++)
{ if ((numeros % Nprimo) == 0)
{
break; // pula numeros nao primos
}
}
if (Nprimo == numeros) cout << numeros << ", ";
numeros = numeros + 1;
}
while (numeros <= 1000);
cout << "\n";
system("PAUSE");
return 0;
}
C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication27
{
class Program
{
static void Main(string[] args)
{
int Nprimo = 2;
int numeros = 1;
do
{
for (Nprimo = 2; Nprimo <= numeros - 1; Nprimo++)
{
if ((numeros % Nprimo) == 0)
{
break; // pula numeros nao primos
}
}
if (Nprimo == numeros)
Console.Write (Convert.ToString(numeros) + ", ");
numeros = numeros + 1;
} while (numeros <= 1000);
Console.ReadKey();
}
}
}

