본문 바로가기
  • Top Genius in the world
알고리듬

[알고리듬] #46 while문의 이해

by Mr.Algo 2024. 4. 11.
728x90
반응형

파니썬 실습창을 열 수 있습니다.실습창 열기

loop (반복)

 

 

1. while 문의 이해

반복문은 반복적인 실행(repeated execution, loop)을 제어합니다. whilefor가 반복문입니다.

while문은 조건식(expression)이 참인 동안 무한 반복 실행하고, for문은 값을 차례대로 꺼낼 수 있는

객체(iterator)의 값을 치례대로 하나씩 모두 꺼내어 실행합니다.

 

반복구조문제를 해결할 때는 while을 사용할 수도 있고 for를 사용할 수도 있습니다. while은 종료조건(탈출조건, base case)을 알고 있을 때 사용하면 편리하고, for는 유도조건(inductive case)을 알고 있을 때 사용하면 판리합니다.

 

몇가지 문제를 해결하여 보면 문제에 따라 while문과 for문 중에 어느것을 사용하는 것이 편리한지 쉽게 알 수 있습니다.

 

2.  while문의 형식

while문 형식 설명
while_stmt ::= "while" expression ":" suite
["else" ":" suite]

“” 속의 내용은 생략할 수 없다.
[]는 생략 가능을 의미한다.
expression은 조건식, suite는 실행할 문장이다.
expression이참(True)인 동안 suite를 반복 실행한다.
else가 있으면
while문을 벗어나기 전에 elsesuite를 실행한다.
break break 명령문을 만나면 while문을 벗어난다.
else가 있어도 else 다음의 suite를 실행하지 않고 벗어난다.
continue continue 명령문을 만나면 continue 다음의 남은 suite
실행하지 않고 조건식으로 돌아간다.

 

3. while문의 사용 예

'example'을 코딩하고 철저히 분석하여야 합니다.

no example output & description
1 i=0
while i<10:
    i+=1
    print(i,end=' ')
1 2 3 4 5 6 7 8 9 10

⦁ i10보다 작은 동안 실행된다.
⦁ 조건식의 끝에 콜론(:)이 있다.
   콜론은 문장블록(suite)이 있다는 의미이다.
⦁들여쓰기를 유의해야 한다(보통 4칸)
  들여쓰기는 문장블록을 구별한다.
⦁ end=' '가 있으면 줄을 바꾸지 않고, 한 칸 띄어 쓴다.
  실습창에서는 바르게 실행되지 않을 수 있다.

2 i=0
while i<10:
    i+=1
    print(i,end=' ')
else: print('end')
1 2 3 4 5 6 7 8 9 10 end

⦁ 마지막에 end가 출력되었다.
3 i=0
while i<10:
    i+=1
    if i==7:continue
    print(i,end=' ')
else: print('end')
1 2 3 4 5 6 8 9 10 end

⦁ 7이 출력되지 않았다.
   print문을 실행하지 않고(skip),
   while 문으로 분기하였다.
⦁ 마지막에 end는 출력하였다.
4 i=0
while i<10:
    i+=1
    if i==7:break
    print(i,end=' ')
else: print('end')
1 2 3 4 5 6

i7과 같을 때 while문을 벗어났다.
  else 다음에 있는 end는 출력하지 않았다.
5 i=0
while i<2:
    i+=1; j=0
    while j<2:
        j+=1
        print(i,j)
    else: print('end j')
else: print('end i')
1 1
1 2
end j
2 1
2 2
end j
end i

⦁ whlie문을 겹쳐 사용하였다.
(다중 while, nested while)
실행과정을 추적하여 분석하자.

 

수고하셨습니다.

오늘 끝.

 

728x90
반응형