While
V cykle while sa vyhodnocuje výraz ešte pred vstupom do tela cyklu. To znamená, že príkazy v tele cyklu sa vykonajú iba ak bude mať výraz nenulovú hodnotu.
Pri tomto type príkazu sa môže stať, že cyklus neprebehne ani raz.
syntax: alebo syntax:
while(podmienka) príkaz; while(podmienka) { príkaz1; ... príkazn; }
Ak je hodnota výrazu nenulová vykonajú sa príkazy alebo príkaz v tele cyklu a znovu sa vyhodnotí výraz. Cyklus sa opakuje dovtedy, pokiaľ výraz nenadobudne nulovú hodnotu.
Potom sa cyklus ukončí a program pokračuje ďalším príkazom.
Vzorový príklad:
Napíšte program, ktorý po stlačení klávesy vypíše na obrazovku slovo programovanie. Tento program sa neskončí kým nestlačíme klávesu K
#include <stdio.h>int main(void) { char a = ' '; printf("zadaj písmeno k\n"); while (a != 'k' && a != 'K') { scanf("%c",&a); if (a!='k' && a!='K') printf("Programovanie\n"); } }

Úloha číslo 1: Napíšte program na výpočet priemeru vstupných čísel pokiaľ používateľ nezadá 0
#include<stdio.h>
int main()
{
int sucet = 0;
int pocitadlo = 0;
int vstup;
double priemer;
printf("Zadajte čísla (pre ukončenie zadejte 0):\n");
while (1)
{
scanf("%d", &vstup);
if (vstup == 0)
{
break;
}
sucet += vstup;
pocitadlo++;
}
priemer = (double)sucet / pocitadlo;
printf("Priemer: %.2f\n", priemer);
}
Úloha číslo 2: Vytvorte jednoduchú hru kde používateľ háda náhodne vygenerované číslo od 1 do 10. Program sa skončí keď ho uhádne.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
srand(time(0));
int hadaj;
int cislo= rand() % 10 + 1;
printf("Hádaj číslo od 1 do 10:\n");
while (1)
{
scanf("%d", &hadaj);
if (hadaj == cislo)
{
printf("Správne! Uhádol si číslo.\n");
break;
} else {
printf("Nesprávne! Skús to znova.\n");
}
}
return 0;
}

Úloha číslo 3: Napíšte program ktorý vypíše prvých Fibonacciho postupnosť do zadaného limitu.
#include<stdio.h>
int main()
{
int limit;
int n1 = 0, n2 = 1, n3;
printf("Zadajte limit: ");
scanf("%d", &limit);
printf("Fibonacciho postupnosť:\n");
printf("%d\t", n1);
printf("%d\t", n2);
while (n1 + n2 <= limit)
{
n3 = n1 + n2;
printf("%d\t", n3);
n1 = n2;
n2 = n3;
}
}
Úloha číslo 4: Napíšte program na výpočet faktoriálu čísla zadaného používateľom.
#include<stdio.h>
int main()
{
int cislo;
int factorial = 1;
printf("Zadajte číslo: ");
scanf("%d", &cislo);
int i = 1;
while (i <= cislo)
{
factorial *= i;
i++;
}
printf("Faktoriál čísla %d je %d\n", cislo, factorial);
}
