파이썬 while 루프 주어진 조건이 만족될 때까지 명령문 블록을 반복적으로 실행하는 데 사용됩니다. 조건이 거짓이 되면 프로그램의 루프 바로 다음 줄이 실행됩니다.
Python의 while 루프 구문
while expression: statement(s)>
Python While 루프의 흐름도
While 루프는 다음 범주에 속합니다. 무한 반복 . 무한 반복은 루프가 실행되는 횟수가 미리 명시적으로 지정되지 않음을 의미합니다.
명령문은 프로그래밍 구문이 단일 코드 블록의 일부로 간주된 후 동일한 수의 문자 공백으로 들여쓰기된 모든 명령문을 나타냅니다. Python은 문장을 그룹화하는 방법으로 들여쓰기를 사용합니다. while 루프가 실행되면 expr은 먼저 부울 컨텍스트에서 평가되고, true이면 루프 본문이 실행됩니다. 그런 다음 expr을 다시 확인하고, 여전히 true이면 본문이 다시 실행되고 표현식이 false가 될 때까지 계속됩니다.
차이점 Python For 루프 및 Python While 루프
Python For 루프와 Python While 루프의 주요 차이점은 Python for 루프는 일반적으로 반복 횟수가 다음과 같을 때 사용된다는 것입니다. 모두 다 아는 , Python while 루프는 반복 횟수가 다음과 같을 때 사용됩니다. 알려지지 않은
Python While 루프
이 예에서는 카운터 변수(count)가 3보다 작으면 while에 대한 조건은 True입니다.
파이썬
# Python program to illustrate> # while loop> count>=> 0> while> (count <>3>):> >count>=> count>+> 1> >print>(>'Hello Geek'>)> |
>
>산출
Hello Geek Hello Geek Hello Geek>
Python의 무한 while 루프
여기서 조건의 값은 항상 True입니다. 따라서 루프 본문은 메모리가 가득 찰 때까지 무한히 실행됩니다.
파이썬
age>=> 28> > # the test condition is always True> while> age>>19>:> >print>(>'Infinite Loop'>)> |
>
>
예제가 포함된 Python의 제어문
루프 제어 문은 일반적인 순서에서 실행을 변경합니다. 실행이 범위를 벗어나면 해당 범위에서 생성된 모든 자동 개체가 삭제됩니다. Python은 다음 제어문을 지원합니다.
continue 문을 사용하는 Python while 루프
파이썬 계속 진술 루프의 시작 부분으로 컨트롤을 반환합니다.
파이썬
# Prints all letters except 'e' and 's'> i>=> 0> a>=> 'geeksforgeeks'> > while> i <>len>(a):> >if> a[i]>=>=> 'e'> or> a[i]>=>=> 's'>:> >i>+>=> 1> >continue> > >print>(>'Current Letter :'>, a[i])> >i>+>=> 1> |
SQL의 substring_index
>
>산출
Current Letter : g Current Letter : k Current Letter : f Current Letter : o Current Letter : r Current Letter : g Current Letter : k>
break 문이 있는 Python while 루프
파이썬 Break 문 루프에서 제어를 가져옵니다.
파이썬
# break the loop as soon it sees 'e'> # or 's'> i>=> 0> a>=> 'geeksforgeeks'> > while> i <>len>(a):> >if> a[i]>=>=> 'e'> or> a[i]>=>=> 's'>:> >i>+>=> 1> >break> > >print>(>'Current Letter :'>, a[i])> >i>+>=> 1> |
>
>산출
Current Letter : g>
pass 문이 있는 Python while 루프
빈 루프를 작성하기 위한 Python pass 문입니다. Pass는 빈 제어문, 함수 및 클래스에도 사용됩니다.
파이썬
# An empty loop> a>=> 'geeksforgeeks'> i>=> 0> > while> i <>len>(a):> >i>+>=> 1> >pass> > print>(>'Value of i :'>, i)> |
>
>산출
Value of i : 13>
while 루프를 else로 사용
위에서 설명한 것처럼 while 루프는 조건이 만족될 때까지 블록을 실행합니다. 조건이 false가 되면 루프 직후의 명령문이 실행됩니다. else 절은 while 조건이 false가 될 때만 실행됩니다. 루프에서 벗어나거나 예외가 발생하면 실행되지 않습니다.
메모: for/while 바로 뒤의 else 블록은 루프가 break 문에 의해 종료되지 않는 경우에만 실행됩니다.
파이썬
# Python program to demonstrate> # while-else loop> > i>=> 0> while> i <>4>:> >i>+>=> 1> >print>(i)> else>:># Executed because no break in for> >print>(>'No Break
'>)> > i>=> 0> while> i <>4>:> >i>+>=> 1> >print>(i)> >break> else>:># Not executed as there is a break> >print>(>'No Break'>)> |
>
>산출
1 2 3 4 No Break 1>
Sentinel 제어문
여기서는 루프가 몇 번 실행될지 모르기 때문에 카운터 변수를 사용하지 않습니다. 여기서 사용자는 루프를 실행할 횟수를 결정합니다. 이를 위해 센티넬 값을 사용합니다. 센티넬 값은 사용자가 입력할 때마다 루프를 종료하는 데 사용되는 값으로, 일반적으로 센티넬 값은 -1입니다.
사용자 입력이 포함된 Python while 루프
여기서는 먼저 사용자에게 숫자를 입력하라고 요청합니다. 사용자가 -1을 입력하면 루프가 실행되지 않습니다. 즉,
- 사용자가 6을 입력하면 루프 본문이 실행되고 다시 입력을 요청합니다.
- 여기서 사용자는 루프를 중지하기 위해 -1을 입력할 때까지 여러 번 입력할 수 있습니다.
- 사용자는 입력을 몇 번이나 입력할지 결정할 수 있습니다.
파이썬
a>=> int>(>input>(>'Enter a number (-1 to quit): '>))> > while> a !>=> ->1>:> >a>=> int>(>input>(>'Enter a number (-1 to quit): '>))> |
자바가 포함된 mvc
>
>
산출:

출력 화면 이미지
부울 값이 있는 While 루프
while 루프에서 부울 값의 일반적인 용도 중 하나는 루프 내의 일부 조건에 따라서만 종료될 수 있는 무한 루프를 만드는 것입니다.
예 :
이 예에서는 카운터를 초기화한 다음 무한 while 루프(True는 항상 true임)를 사용하여 카운터를 증가시키고 해당 값을 인쇄합니다. 카운터가 특정 값에 도달했는지 확인하고 그렇다면 break 문을 사용하여 루프를 종료합니다.
파이썬
# Initialize a counter> count>=> 0> > # Loop infinitely> while> True>:> ># Increment the counter> >count>+>=> 1> >print>(f>'Count is {count}'>)> > ># Check if the counter has reached a certain value> >if> count>=>=> 10>:> ># If so, exit the loop> >break> > # This will be executed after the loop exits> print>(>'The loop has ended.'>)> |
>
>산출
Count is 1 Count is 2 Count is 3 Count is 4 Count is 5 Count is 6 Count is 7 Count is 8 Count is 9 Count is 10 The loop has ended.>
Python 목록이 포함된 Python while 루프
이 예에서는 목록에 요소가 나타날 때까지 실행되는 목록에 대해 while 루프를 실행했습니다.
파이썬
안드로이드 프로세스 acore가 계속 중지됩니다.
# checks if list still> # contains any element> a>=> [>1>,>2>,>3>,>4>]> > while> a:> >print>(a.pop())> |
>
>산출
4 3 2 1>
블록 동안 단일 문
if 블록과 마찬가지로 while 블록이 단일 명령문으로 구성되면 전체 루프를 한 줄로 선언할 수 있습니다. 루프 본문을 구성하는 블록에 여러 개의 명령문이 있는 경우 세미콜론(;)으로 구분할 수 있습니다.
파이썬
# Python program to illustrate> # Single statement while block> count>=> 0> while> (count <>5>):> >count>+>=> 1> >print>(>'Hello Geek'>)> |
>
>산출
Hello Geek Hello Geek Hello Geek Hello Geek Hello Geek>
Python While 루프 연습 질문
다음은 Python while 루프에 대한 두 가지 연습 문제입니다. 바운싱볼 프로그램과 카운트다운 프로그램을 바탕으로 중요한 운동 질문 2가지를 다루었습니다.
Q1. 공이 튀는 문제를 기반으로 한 While 루프 연습 문제
파이썬
initial_height>=> 10> bounce_factor>=> 0.5> height>=> initial_height> while> height>>0.1>:> >print>(>'The ball is at a height of'>, height,>'meters.'>)> >height>*>=> bounce_factor> print>(>'The ball has stopped bouncing.'>)> |
>
>
산출
The ball is at a height of 10 meters. The ball is at a height of 5.0 meters. The ball is at a height of 2.5 meters. The ball is at a height of 1.25 meters. The ball is at a height of 0.625 meters. The ball is at a height of 0.3125 meters. The ball is at a height of 0.15625 meters. The ball has stopped bouncing.>
Q2. 카운트다운 시계를 만드는 간단한 while 루프 연습 코드
파이썬
countdown>=> 10> while> countdown>>0>:> >print>(countdown)> >countdown>->=> 1> print>(>'Blast off!'>)> |
>
>
산출
10 9 8 7 6 5 4 3 2 1 Blast off!>