Înțelegerea diferențelor dintre o buclă do-while, do-until și while ar putea fi derutantă. Este același lucru? De ce atunci două tehnici diferite?

În acest articol de blog voi arăta diferențele. Dar mai întâi, trebuie să aruncăm o privire la elementele de bază.

Do-Until

Buclele Do-Until vor face ceva până când o condiție devine adevărată.

Rețineți condiția egală pentru această buclă $number -eq ‘0’.

De exemplu, codul de mai jos va rula până când veți apăsa 0 pe tastatură. Atunci și numai atunci condiția devine adevărată (0).

do {$number=Read-Host "Enter number (Press 0 to Quit)"}until ($number -eq '0')

Do-While

Buclele Do-While vor face ceva în timp ce o condiție este adevărată.

Rețineți condiția neegală pentru această buclă $number -ne ‘0’.

Codul de mai jos va rula până când apăsați 0 pe tastatură, cu alte cuvinte, scriptul va fi executat atâta timp cât (while) condiția nu devine adevărată (0).

do {$number=Read-Host "Enter number"}while ($number -ne 0)

While

Buclele While sunt similare cu buclele Do-While. Dar acest tip de buclă efectuează mai întâi verificarea, în timp ce buclă Do-While efectuează verificarea după prima trecere.

La penultima trecere, $i este 9, deci se va face ultima trecere, dar apoi nu mai mult.

while ($i -ne 10) {$i++Write-Host $i}
while ($i -ne 10) {$i++Write-Host $i}

Do-Until vs. Do-Until. Do-While vs. While

Exemplul următor arată diferențele care nu sunt semnificative la prima vedere, dar sunt.

Prima buclă va rula doar o singură dată deoarece va rula doar în timp ce (atâta timp cât) $i este mai mare decât 10. Acest lucru nu este cazul. Prin urmare, bucla se va opri după prima execuție atunci când verificarea este procesată.

Cea de-a doua buclă va rula la nesfârșit deoarece $i nu va deveni niciodată mai mare decât 10 și, prin urmare, afirmația este adevărată.

$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)

În sfârșit, dar nu în ultimul rând, bucla while fără instrucțiunea do. Această buclă nu va rula niciodată pentru că verificarea se face înainte de începerea buclei.

$i = 10while ($i -gt 10) {Write-Output 'This will never be executed.'}

Sper că am putut aduce puțină lumină în întuneric când vine vorba de bucla cu instrucțiunea do.

Ne vedem data viitoare cu PowerShell!

Lasă un răspuns

Adresa ta de email nu va fi publicată.