See also ebooksgratis.com: no banners, no cookies, totally FREE.

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
While petlja - Wikipedija

While petlja

Izvor: Wikipedija

U većini računalnih programskih jezika, while petlja je naredba upravljanja tokom koja dopušta opetovano izvršenje koda u ovisnosti o danom bulovskom uvjetu. While petlja se može shvatiti kao ponavljajuća if naredba.

While konstrukt se sastoji od bloka koda i uvjeta. Uvjet je prvo evaluiran - ako je uvjet logička istina, kod se unutar bloka izvršuje. Ovo se ponavlja sve dok uvjet ne postane lažan. S obzirom da while petlja provjeruje uvjet prije izvršenja bloka koda, upravljačka je struktura često poznata kao pred-test petlja. Valja je usporediti s do while petljom koja ispituje uvjet nakon izvršenja petlje.

Primjerice, u C-u (kao i u Javi i C++u, koji koriste istu sintaksu u ovom slučaju), odsječak koda

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

prvo provjeruje je li x veći od 3, a s obzirom da nije, inkrementira ga za 1. Potom opet provjeruje dani uvjet, opet izvršuje, ponavljajući ovaj postupak sve dok varijabla x ne dosegne vrijednost 3.

Valja uočiti da je moguće, u nekim slučajevima čak i poželjno, da se uvjet uvijek evaluira u logičku istinu, stvarajući beskonačnu petlju. Kad se takva petlja hotimice stvori, obično postoji neka druga upravljačka struktura (poznata kao break naredba) koja upravlja terminacijom petlje.

Sadržaj

[uredi] Demonstracija while petlji

Ove će petlje izračunati faktorijelu broja 5:

[uredi] QBasic ili Visual Basic

 'Inicijaliziraj varijable
 Dim brojac as Integer : brojac = 5
 Dim faktorijela as Long : faktorijela = 1
 Do While brojac > 0
   faktorijela = faktorijela * brojac     'Množi
   brojac = brojac - 1                    'Dekrementiraj
 Loop
 Print faktorijela                        'Ispiši rezultat.

[uredi] REALbasic

 Dim brojac as Integer = 5
 Dim faktorijela as Integer = 1
 While brojac > 0
   faktorijela = faktorijela * brojac     // Množi
   brojac = brojac - 1                    // Dekrementiraj
 Wend
 MsgBox Str( faktorijela )                // Ispiši rezultat.

[uredi] C ili C++

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

[uredi] Perl

 my $brojac = 5;
 my $faktorijela = 1;
 while ( $brojac > 0 ) 
 {
     $faktorijela *= $brojac--;           # Množi pa dekrementiraj
 }
 print $faktorijela;

Vrlo slično C i C++ rješenju, s tim da se while petlja mogla također napisati jednom linijom koda:

 $faktorijela *= $brojac-- while $brojac > 0;

While petlje se često koriste za čitanje podataka liniju po liniju (kao što je definirano linijskim separatorom $/) iz otvorenih datotečnih ručica:

 open ULAZ, "<test.txt";
 while ( <ULAZ> )
 {
   print;
 }
 close ULAZ;

[uredi] PHP

$brojac = 5;
$faktorijela = 1;
while($brojac > 0) {
  $faktorijela *= $brojac--;              // Množi pa dekrementiraj.
}
echo $faktorijela;

[uredi] Tcl (Tool command language)

 set brojac 5
 set faktorijela 1
 while {$brojac > 0} {
   set faktorijela [expr $faktorijela * $brojac] 
   incr brojac -1 
 }
 puts $faktorijela

[uredi] Java, C#

Kod za petlju je isti kao i za Javu i C#:

 int brojac = 5;
 long faktorijela = 1;
 while (brojac > 0)
    faktorijela *= brojac--;             // Množi pa dekrementiraj.

Za Javu se rezultat ispisuje na sljedeći način:

 System.out.println(faktorijela);

Isto to u C#:

 System.Console.WriteLine(faktorijela);

[uredi] JavaScript

var brojac = 5;
var faktorijela = 1;
while (brojac)
{
  faktorijela *= brojac--;              // Množi pa dekrementiraj.
}
document.body.appendChild(document.createTextNode(faktorijela));

[uredi] Pascal

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

[uredi] Smalltalk

Suprotno drugim jezicima, u Smalltalku while petlja nije jezični konstrukt već je definirana u klasi BlockClosure kao jednoparametarska metoda, tijelom kao zatvorenošću, rabeći samu sebe kao uvjet.

| brojac faktorijela |
brojac := 5.
faktorijela := 1.
[ brojac > 0 ] whileTrue: 
    [ faktorijela := faktorijela * (brojac := brojac - 1) ]

[uredi] Python

 brojac = 5
 faktorijela = 1
 while brojac>0:
       faktorijela *= brojac
       brojac -= 1
 print faktorijela

[uredi] AutoIt

 Dim $brojac = 5, $faktorijela = 1
 While $brojac > 0
    $faktorijela *= $brojac
    $brojac -= 1
 WEnd
 MsgBox(0,"Faktorijela", $faktorijela)


[uredi] Vidjeti također


aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -