Pochopení rozdílů mezi smyčkou do-while, do-until a while může být matoucí. Je to totéž? Proč tedy dvě různé techniky?“
V tomto příspěvku na blogu ukážu rozdíly. Nejprve se však musíme podívat na základy.
Smyčka do-až
Smyčka do-až bude něco dělat, dokud se nestane pravdivou podmínka.
Všimněte si rovné podmínky pro tuto smyčku $číslo -eq ‚0‘.
Například níže uvedený kód bude probíhat, dokud na klávesnici nezmáčknete nulu. Teprve pak se podmínka stane pravdivou (0).
do {$number=Read-Host "Enter number (Press 0 to Quit)"}until ($number -eq '0')
Do-While
Smyčky Do-While budou něco dělat, dokud je podmínka pravdivá.
Všimněte si podmínky not equal pro tuto smyčku $number -ne ‚0‘.
Následující kód bude probíhat, dokud na klávesnici nestisknete 0, jinými slovy, skript se bude provádět tak dlouho (dokud) nebude podmínka pravdivá (0).
do {$number=Read-Host "Enter number"}while ($number -ne 0)
While
Smyčky While jsou podobné smyčkám Do-While. Tento typ smyčky však provádí kontrolu jako první, zatímco smyčka Do-While provádí kontrolu až po prvním průchodu.
Při předposledním průchodu je $i 9, takže se provede poslední průchod, ale pak už ne.
while ($i -ne 10) {$i++Write-Host $i}
Do-Until vs. Do-While. Do-While vs. While
Následující příklad ukazuje rozdíly, které nejsou na první pohled podstatné, ale jsou.
První smyčka proběhne pouze jednou, protože proběhne pouze, dokud (dokud) je $i větší než 10.
První smyčka proběhne pouze jednou. V tomto případě tomu tak není. Proto se smyčka po prvním spuštění zastaví, když je kontrola zpracována.
Druhá smyčka poběží nekonečně dlouho, protože $i nikdy nebude větší než 10, a proto je statemtent pravdivý.
$i = 10do {Write-Output 'This is executed once.'}while ($i -gt 10)do {Write-Output 'This is done over and over again!'}until ($i -gt 10)
V neposlední řadě smyčka while bez příkazu do. Tato smyčka nikdy neproběhne, protože kontrola se provede před spuštěním smyčky.
$i = 10while ($i -gt 10) {Write-Output 'This will never be executed.'}
Doufám, že se mi podařilo vnést trochu světla do tmy, pokud jde o smyčku s příkazem do.
Na shledanou příště s PowerShellem!