WHILE, DO-WHILE, DO-UNTIL

A WHILE  és UNTIL  segítségével ciklust szervezhetünk. Kétfajta változata is van a WHILE-nak, a „sima” elöl tesztelő, és a DO-WHILE  hátul tesztelő, míg az UNTIL-nak csak a DO-UNTIL  hátul tesztelő változata létezik. A hátul tesztelő mindenképpen lefut egyszer, az elöl tesztelő akár a belsejének lefuttatása nélkül is továbbléphet, ha az alkalmazott feltétel rögtön hamis. Nézzünk pár példát:

[13] PS C:\> $i = 3

[14] PS C:\> while($i -lt 6)

>> {

>>     "*" * $i

>>     $i++

>> }

>> 

***

****

*****

A WHILE ciklus tehát addig jut, amíg a megfogalmazott feltétel igaz, azaz a példámban amíg az $i kisebb mint 6, addig $i darabszámú csillagot írok ki, és növelem az $i-t. A ciklus 5 csillagnál lép ki, mivel a 6.-nál már nem igaz az, hogy kisebb, mint 5.

És egy hátul tesztelő:

[16] PS C:\> $a=4

[17] PS C:\> do

>> {

>>     $a++

>>     $a

>> }

>> while ($a -lt 6)

>> 

5

6

Itt meg a ciklus 6-nál lépett ki, hiszen a feltétel nem teljesülését csak akkor vette észre, amikor már a ciklus magja lefutott.

Nézzük az DO-UNTIL ciklust:

[18] PS C:\> do{"Nincs billentyű lenyomva."; start-sleep 1}until($host.UI.RawUI

.KeyAvailable)

Nincs billentyű lenyomva.

Nincs billentyű lenyomva.

[19] PS C:\> k

A példában billentyűzetlenyomásig megy a ciklus. Ez tehát csak annyiban különbözik a DO-WHILE-tól, hogy itt a feltétel hamis állapota mellett fut a ciklus, és az igazzá váláskor lép ki.



Word To HTML Converter