Ciklet while dhe do while

Cikli while është një strukturë tjetër e gjuhës C. Ai ka për qëllim të përsërisë një bashkësi instruksionesh për aq kohë sa kushti është i vërtetë. Forma e përgjithshme e tij është:

while (kushti)
{
trupi_i_ciklit;                        //lista e instruksioneve
}

Shembull 1
Të ndërtohet një program që afishon numrat nga 1 deri në 12.

#include<stdio.h>
#include<conio.h>
int main()
{ int numri;
numri=1;
printf (“Ky program afishon\n”);
while (numri<=12)
{
printf (“%d ”,numri);
numri++;
}
getch();
return 0;
}

Rezultati i ekzekutimit të këtij programi do të jetë:

 

 

 

 

Cikli do while

Cikli do while është një cikël i ngjashëm me while, por në ndryshim nga ai, kushti i tij vlerësohet në fund të ciklit pas ekzekutimit të trupit. Përderisa trupi i ciklit ekzekutohet fillimisht dhe më pas vlerësohet kushti, jemi të sigurt që ai ekzekutohet të paktën një herë, në ndryshim nga while, ku trupi i ciklit mund të mos ekzekutohet asnjëherë. Sintaksa e ciklit do while është:

do
{
trupi_i_ciklit;              //lista e instruksioneve
}
while (kushti);

Këtu ekzekutohet trupi_i_ciklit e më pas vlerësohet kushti. Nëse kushti është i vërtetë, atëherë trupi i ciklit ekzekutohet përsëri. Ky proces vazhdon derisa kushti bëhet i gabuar.

Shembull:
Përdoruesi duhet të udhëzohet që të shtypë germën Y ose N. Ai mund të shtypë çfarëdolloj karakteri tjetër përveç tyre. Në raste të tilla, mesazhi duhet të shfaqet përsëri dhe përdoruesi duhet të lejohet të shtypë njërën nga dy germat. Programi i mëposhtëm jep zgjidhjen e kërkuar.

#include<stdio.h>                                 // përfshin skedarin stdio.h në programin tonë
#include <conio.h>
int main()                                               // fillimi i programit
{char c;                                                   // deklarimi i karakterit
do // fillimi i ciklit do
{printf (“Lexo Y ose N\n”);                 // mesazhi për përdoruesin
scanf (“%c”, &c);                                   // lexon karakterin i cili ruhet te variabli c
}
while (c!=’Y’ && c != ‘N’);                     // kushti i mbarimit të ciklit
if (c==’Y’)                                               // kontrollon nëse është futur karakteri y
printf (“Ju lexuat Y”);                          // mesazhi për përdoruesin
else
printf (“Ju lexuat N”);
getch ();
return 0;
}                                                              //mbarimi i programit