about_Do — do 반복문
about_Do — do 반복문
PowerShell에서 do 키워드를 쓰면 조건을 나중에 확인하면서, 명령문 블록을 한 번 이상 반복 실행할 수 있어요. 일반적인 while 루프와 달리 do 루프는 조건이 어떻든 최소한 한 번은 반드시 실행된다는 게 핵심이에요. 반복이 끝나는 시점과 조건을 어떻게 다루는지 이 문서에서 정리해 드릴게요.
출처: https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_do
본문
짧은 설명
하나 이상의 명령문 목록(statement list)을 조건(while 또는 until)이 맞을 때까지 반복해서 실행해요.
자세한 설명
do 키워드는 while 키워드 또는 until 키워드와 함께 사용해서, 명령문 블록에 들어 있는 명령들을 조건에 따라 반복 실행해요. 관련된 while 루프와 달리, do 루프의 명령문 블록은 항상 최소한 한 번은 실행돼요.
do/while 루프
do/while 루프는 while 루프의 한 변형이에요. do/while 루프에서는 명령문 블록이 실행된 후에 조건을 평가해요. while 루프와 마찬가지로, 명령문 블록은 조건이 true로 평가되는 동안 계속 반복돼요.
do/until 루프
do/until 루프도 조건을 평가하기 전에 최소한 한 번은 실행돼요. 다만 명령문 블록은 조건이 false인 동안에만 실행되고, 조건이 true가 되는 순간 반복을 멈춰요.
continue와 break 흐름 제어 키워드는 do/while 루프와 do/until 루프 어디에서나 사용할 수 있어요.
구문
do/while 문의 구문은 다음과 같아요:
do {<statement list>} while (<condition>)
do/until 문의 구문은 다음과 같아요:
do {<statement list>} until (<condition>)
명령문 목록에는 루프에 진입하거나 반복할 때마다 실행되는 명령이 하나 이상 들어 있어요. 조건(condition) 부분은 true 또는 false로 평가돼요. 부울 값이 어떻게 평가되는지 자세히 알고 싶으면 about_Booleans 문서를 참고해 주세요.
예제
다음 do 문 예제는 배열에서 값이 0인 항목에 도달할 때까지 항목을 세요.
PS> $x = 1,2,78,0
PS> do { $count++; $a++; } while ($x[$a] -ne 0)
PS> $count
3
다음 예제는 until 키워드를 사용해요. 이번에는 같지 않음 연산자(-ne)가 같음 연산자(-eq)로 바뀐 걸 눈여겨보세요.
PS> $x = 1,2,78,0
PS> do { $count++; $a++; } until ($x[$a] -eq 0)
PS> $count
3
다음 예제는 배열의 모든 값을 출력하면서, 0보다 작은 값은 건너뛰어요.
do {
if ($x[$a] -lt 0) { continue }
Write-Host $x[$a]
}
while (++$a -lt 10)