728x90
반응형
파니썬 실습창을 열 수 있습니다.실습창 열기
1. while 문의 이해
반복문은 반복적인 실행(repeated execution, loop)을 제어합니다. while과 for가 반복문입니다.
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문을 벗어나기 전에 else의 suite를 실행한다. |
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 ⦁ i가 10보다 작은 동안 실행된다. ⦁ 조건식의 끝에 콜론(:)이 있다. 콜론은 문장블록(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 ⦁ i가 7과 같을 때 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
반응형
'알고리듬' 카테고리의 다른 글
[알고리듬] #48 소인수 분해 (0) | 2024.04.11 |
---|---|
[알고리듬] #47 구글입사 문제 (0) | 2024.04.11 |
[알고리듬] #46 삼각형 판별 (0) | 2024.04.10 |
[알고리듬] #45 요일 구하기 (0) | 2024.04.09 |
[알고리듬] #44 윤년과 평년(2) (0) | 2024.04.08 |