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(); } } }