Do while petlja: razlika između inačica

Izvor: Hrvatska internetska enciklopedija
Prijeđi na navigaciju Prijeđi na pretraživanje
Bot: Automatski unos stranica
 
m bnz
 
Redak 1: Redak 1:
<!--'''Do while petlja'''-->U većini [[računalno programiranje|računalnih programskih]] jezika '''''do while'' petlja''', ponekad nazvana samo kao '''''do'' petlja''', je [[naredba (programiranje)|naredba]] [[upravljanje tokom|upravljanja toka]] koja dopušta izvršavanje koda na osnovu danog [[bulovski tip podataka|bulovskog]] uvjeta. Valja uočiti da je, za razliku od većine jezika, [[Fortran]]ova ''do'' petlja ustvari analogna [[for petlja|for petlji]].
U većini [[računalno programiranje|računalnih programskih]] jezika '''''do while'' petlja''', ponekad nazvana samo kao '''''do'' petlja''', je [[naredba (programiranje)|naredba]] [[upravljanje tokom|upravljanja toka]] koja dopušta izvršavanje koda na osnovu danog [[bulovski tip podataka|bulovskog]] uvjeta. Valja uočiti da je, za razliku od većine jezika, [[Fortran]]ova ''do'' petlja ustvari analogna [[for petlja|for petlji]].


''Do while'' konstrukt se sastoji od bloka koda i uvjeta. Prvo se izvršuje kod unutar bloka, a potom se evaluira uvjet. Ako je uvjet [[istina|istinit]], kod se unutar bloka opet izvršuje. Ovo se opetuje sve dok uvjet ne postane [[laž]]an. Budući da ''do while'' petlje provjeruju uvjet nakon izvršenja bloka koda, upravljačka se struktura često naziva '''postispitnom petljom'''. Ovo valja sučeliti s [[while petlja|while petljom]], koja ispituje uvjet prije izvršenja koda bloka.
''Do while'' konstrukt se sastoji od bloka koda i uvjeta. Prvo se izvršuje kod unutar bloka, a potom se evaluira uvjet. Ako je uvjet [[istina|istinit]], kod se unutar bloka opet izvršuje. Ovo se opetuje sve dok uvjet ne postane [[laž]]an. Budući da ''do while'' petlje provjeruju uvjet nakon izvršenja bloka koda, upravljačka se struktura često naziva '''postispitnom petljom'''. Ovo valja sučeliti s [[while petlja|while petljom]], koja ispituje uvjet prije izvršenja koda bloka.

Posljednja izmjena od 13. travanj 2022. u 22:59

U većini računalnih programskih jezika do while petlja, ponekad nazvana samo kao do petlja, je naredba upravljanja toka koja dopušta izvršavanje koda na osnovu danog bulovskog uvjeta. Valja uočiti da je, za razliku od većine jezika, Fortranova do petlja ustvari analogna for petlji.

Do while konstrukt se sastoji od bloka koda i uvjeta. Prvo se izvršuje kod unutar bloka, a potom se evaluira uvjet. Ako je uvjet istinit, kod se unutar bloka opet izvršuje. Ovo se opetuje sve dok uvjet ne postane lažan. Budući da do while petlje provjeruju uvjet nakon izvršenja bloka koda, upravljačka se struktura često naziva postispitnom petljom. Ovo valja sučeliti s while petljom, koja ispituje uvjet prije izvršenja koda bloka.

Moguće je, u nekim slučajima i poželjno, da uvjet uvijek evaluira u istinu, stvarajući beskonačnu petlju. Kad je takva petlja stvorena hotimice, obično postoji neka druga upravljačka struktura (poput break naredbe) koja dopušta terminaciju petlje.

Neki jezici mogu rabiti drukčiju konvenciju imenovanja za ovaj tip petlje. Primjerice, Pascal je naziva "repeat until petljom". Valja uočiti da će se u Pascalu petlja izvršavati sve dok upravljački izraz ne poprimi vrijednost "istina" kao suprotnost drugim jezicima u kojima petlja terminira u trenutku kad upravljački izraz poprimi vrijednost "laž".

Primjerice, u C-u, odsječak koda:

<syntaxhighlight lang="c">

x = 0;
do {
   x = x + 1;
} while (x < 3);

</syntaxhighlight> prvo izvršuje naredbu x = x + 1, što rezultira s x = 1. Potom se provjeruje uvjet x < 3, koji je istinit, te se stoga blok koda ponovo izvršuje. Ovaj se postupak ispitivanja i provjere opetuje sve dok varijabla x ne dosegne željenu vrijednost 3.

Demonstracija do while petlji[uredi]

Ove će do while petlje izračunati faktorijelu broja:

QBasic ili Visual Basic[uredi]

<syntaxhighlight lang="Qbasic">

 Dim brojac As Integer : brojac = 5
 Dim faktorijela as Long : faktorijela = 1
 Do
   faktorijela = faktorijela * brojac 'množi
   brojac = brojac - 1 'dekrementiraj
 Loop While (brojac > 0)
 Print faktorijela

</syntaxhighlight>

ActionScript[uredi]

<syntaxhighlight lang="ActionScript">

 var brojac:Number = 5;
 var faktorijela:Number = 1;
 do {
    faktorijela *= brojac;
    brojac --;
 } while (brojac > 0)
 trace(faktorijela);

</syntaxhighlight>

C ili C++[uredi]

<syntaxhighlight lang="c">

 unsigned int brojac = 5;
 unsigned long faktorijela = 1;
 do {
   faktorijela *= brojac--; /* Množi pa dekrementiraj. */
 } while (brojac > 0);
 printf("%lu\n", faktorijela);

</syntaxhighlight>

Java[uredi]

<syntaxhighlight lang="java">

 int brojac = 5;
 long faktorijela = 1;
 do {
   faktorijela *= brojac--; // Množi pa dekrementiraj.
 } while (brojac > 0);
 System.out.println(faktorijela);

</syntaxhighlight>

JavaScript[uredi]

<syntaxhighlight lang="JavaScript"> var brojac = 5; var faktorijela = 1; do {

 faktorijela *= brojac--; // Množi pa dekrementiraj.

} while (brojac) document.body.appendChild(document.createTextNode(faktorijela)); </syntaxhighlight>

REALbasic[uredi]

<syntaxhighlight lang="vbnet">

 Dim brojac As Integer = 5
 Dim faktorijela as Integer = 1
 Do
   faktorijela = faktorijela * brojac // množi
   brojac = brojac - 1 // dekrementiraj
 While brojac > 0
 MsgBox Str( faktorijela )

</syntaxhighlight>

FORTRAN 77[uredi]

<syntaxhighlight lang="fortran">

 REAL MASA, MASAGUB
 MASA = 7.0
 MASLOS = 1.0
 DO WHILE (MASA .GE. O.O)
   MASA = MASA - MASAGUB
   WRITE(*,*),MASA
 END DO

</syntaxhighlight>

Pascal[uredi]

<syntaxhighlight lang="pascal">

 program Faktorijela
 var
   Brojac, Faktorijela: integer;
 begin
   Brojac := 5;
   Faktorijela := 1;
   repeat
     Faktorijela := Faktorijela * Brojac;
     Brojac := Brojac - 1;
   until ((Brojac > 0)=false);
   Write(Faktorijela);
 end.

</syntaxhighlight>

Vidjeti također[uredi]

de:Schleife (Programmierung)#Do-While-Schleife