Structura repetitivă do-while

do…while este o structură repetitivă cu număr necunoscut de paşi.

Do-while se comportă asemănător cu un while. Singura diferenţă este verificarea condiţiei care este făcută la final pentru structura do-while. Din acest motiv, instrucţiunile din do-while se vor executa cel puţin o singură dată.

Sintaxa

do {
    instructiuni;
} while (conditie);

Unde

  • do – cuvânt cheie
  • instrucţiuni – oricâte instrucţiuni pe care vrem să le executăm
  • while – cuvânt cheie
  • condiţie – o condiţie oricât de complexă din care rezultă ceva adevărat sau fals; atât timp cât condiţia este adevărată, se vor executa instrucţiunile din interiorul lui do-while

Exemplu

Scanner sc = new Scanner(System.in);
int sum = 0;
do {
    int num = sc.nextInt();
    sum += num;
} while (num != 0);
System.out.println(sum);

Exerciţii

1. Să se scrie un program care să simuleze aruncarea a două zaruri. Să se arate valorile de pe zaruri, şi suma acestora. Programul se va opri când va întâlni o dublă. Folosiţi do-while.

Solutie

Solutie

Random rand = new Random();

int zar1;
int zar2;

do {
   zar1 = rand.nextInt(6) + 1;
   zar2 = rand.nextInt(6) + 1;
   
   System.out.println("Zar 1: " + zar1 + " | zar 2: " + zar2 + " | Total: " + (zar1+zar2) );
   
   
} while (zar1 != zar2);

System.out.println("Gata, am dat dubla, ne oprim!");


2. Să se scrie un program care generează un număr aleator. Să se ghicească numărul respectiv din mai multe încercări. După fiecare încercare să se afişeze dacă numărul introdus este mai mare sau mai mic decât numărul care trebuie ghicit. Să se folosească do-while.

Solutie

Solutie

Random rand = new Random();
int nrDeGhicit = rand.nextInt(101);
System.out.println("(numarul generat este " + nrDeGhicit + ")");   // pentru test

System.out.println("Sa vedem daca poti sa ghicesti un numar de la 0 la 100");

Scanner keyboard = new Scanner(System.in);
int incercare;

do {
   System.out.println("Introdu un numar: ");
   incercare = keyboard.nextInt();
   if (incercare < nrDeGhicit) System.out.println("Numarul tau e mai mic");
   else if (incercare > nrDeGhicit) System.out.println("Numarul tau e mai mare");
} while (incercare != nrDeGhicit);

System.out.println("Felicitari, ai ghicit!");


3. Să se creeze un calculator care face operaţii simple de adunare şi înmulţire cu o cifră. Se introduc numerele cu operaţia între ele, apoi se afişează rezultatul. Programul se opreşte la adunarea 0 + 0. Folosiţi do-while.

4. Se citesc numere de la tastatură până la întâlnirea numărului 0 şi se face totalul. Să se facă suma numerelor pare şi produsul numerelor impare. Implementaţi o rezolvare cu while şi do-while.

Solutie do-while

Solutie do-while

   
Scanner keyboard = new Scanner(System.in);
int numar;
System.out.println("Introdu un numar. Numerele pare vor fi adunate cu totalul, "
                    + "iar cele impare vor fi inmultite");

int total = 0;
int numarUser;

do {

   numarUser = keyboard.nextInt();
   if (numarUser % 2 == 0) {
      total += numarUser;
   } else total *= numarUser;
   
   System.out.println("Total pana acum: " + total);
   System.out.println("Introdu alt numar sau cifra 0 pentru a incheia programul");
   System.out.println();
   
} while (numarUser != 0);

System.out.println("Total: " + total);
      


5. Să se numere câte cifre are un număr introdus de la tastatură. Implementaţi cu while şi do-while.

Exemplu:

 123 are 3 cifre
 2994 are 4 cifre

You could leave a comment if you were logged in.