Do While
Príkaz do while je podobný príkazu while s tým rozdielom, že teraz sa podmienka vyhodnocuje až po prvom vykonaní tela cyklu. Príkazy v tele cyklu sa budú vykonávať dovtedy, pokiaľ je podmienka splnená. Pri tomto type príkazu určite cyklus prebehne aspoň raz.
syntax: alebo syntax:
do príkaz; while(výraz); do { príkaz1; ... príkazn; } while(výraz);
Najskôr sa vykonajú príkazy resp. príkaz v tele cyklu a potom sa vyhodnotí výraz. Ak je výraz pravdivý t.j. má nenulovú hodnotu, telo cyklu sa opäť vykoná. Ak je pravdivý, cyklus sa skončí.
Cyklus do while je možné použiť všade tam kde treba telo cyklu určite aspoň raz vykonať.
Vzorový príklad:
Napíšte program, ktorý vypočíta súčet čísel od 1 do 10 pomocou cyklu "do-while".
#include <stdio.h>
int main()
{
int suma = 0;
int i = 1;
do {
suma += i;
i++;
} while (i <= 10);
printf("Súčet: %d\n", suma);
}

Úloha číslo 1: Vytvorte program, ktorý vypíše čísla od 1 do 10, pričom preskočí číslo 5.
#include<stdio.h>
int main()
{
int cislo = 1;
do {
if (cislo != 5) {
printf("%d ", cislo);
}
cislo++;
} while (cislo <= 10);
return 0;
}

Úloha číslo 2: Napíšte program ktorý vypíšte všetky písmená abecedy pomocou cyklu "do-while".
#include <time.h>
int main()
{
char pismeno = 'a';
do {
printf("%c ", pismeno);
pismeno++;
} while (pismeno <= 'z');
}

Úloha
číslo 3: Vytvorte program, ktorý vypočíta a vypíše súčet čísel zadanej číselnej postupnosti ukončenej nulou.
#include<stdio.h>
int main()
{
int cislo;
int sucet = 0;
do {
printf("Zadajte číslo (0 pre ukončenie): ");
scanf("%d", &cislo);
sucet += cislo;
} while (cislo != 0);
printf("Súčet: %d\n", sucet);
return 0;
}

Úloha číslo 4: Vytvorte jednoduchú hru, kde počítač generuje náhodné číslo a hráč ho háda. Počítač poskytuje spätnú väzbu, či je hádané číslo väčšie alebo menšie, až kým hráč neuhádne číslo.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
srand(time(0));
int hadaneCislo;
int cislo = rand() % 100 + 1;
int pokusy = 0;
printf("Hádajte číslo od 1 do 100:\n");
do {
printf("Váš tip: ");
scanf("%d", &hadaneCislo);
if (hadaneCislo < cislo) {
printf("Hádané číslo je väčšie.\n");
} else if (hadaneCislo > cislo) {
printf("Hádané číslo je menšie.\n");
}
pokusy++;
} while (hadaneCislo != cislo);
printf("Gratulujem uhádol si číslo");
return 0;
}
