python์ ๋ฐ๋ณต๋ฌธ์๋ while๋ฌธ๊ณผ for๋ฌธ์ด ์์ต๋๋ค. python while ๋ฐ๋ณต๋ฌธ์ ์กฐ๊ฑด์์ ๊ธฐ๋ฐ์ผ๋ก ๋ฌดํ ๋ฃจํ๋ฅผ ์งํํ๋ฉฐ python for ๋ฐ๋ณต๋ฌธ์ ๋ฐ๋ณต ํ์๋ฅผ ์ ๋ ์ฌ์ฉํ๋ฉด ๋ฉ๋๋ค.
โฃ ๋ชฉ์ฐจ
1. while ๋ฐ๋ณต๋ฌธ๐
ํ์ด์ฌ while๋ฌธ์ ๋ฐ๋ณต ํ์๋ฅผ ๋ชจ๋ฅผ ๋ ์ฌ์ฉํ๋ ๋ชฉ์ ์ผ๋ก ์ฐ๊ฒ ๋๋ฉฐ, ๊ธฐ๋ณธ์ ์ธ ํํ๋ ์๋์ ๊ฐ์ต๋๋ค.
while ์กฐ๊ฑด์์๋ bool๊ฐ, ์ฆ True(์ฐธ) ๋๋ False(๊ฑฐ์ง)์ด ๋์ค๊ฒ ๋๋ฉฐ True๊ฐ ๋์ค๋ฉด ๋ฌธ์ฅ์ ๊ณ์ ๋ฐ๋ณตํ๊ฒ ๋๋ ๊ตฌ์กฐ์ ๋๋ค.
while ์กฐ๊ฑด์ :
โ
โ
โ
โ
๋ฐ๋ณตํ ๋ฌธ์ฅ
(โ โ โ โ ๋ ๋ค์ฌ ์ฐ๊ธฐ 4์นธ ์๋ฏธ)
์กฐ๊ฑด์์ True๋ฅผ ๋ฃ์ด ์ด๋ค ๊ฒฐ๊ณผ๊ฐ ๋ํ๋๋์ง ํ๋ฒ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
while True:
print('ใ
', end='')
ํ์ด์ฌ while True๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋ฉด ๋ฌดํ ๋ฃจํ๊ฐ ๋ฐ์ํ๊ฒ ๋ฉ๋๋ค.
์ฌ์ฉ์๊ฐ ๋ฉ์ถ์ง ์๋ํ ๊ณ์ ๋ฐ๋ณต๋๋ฏ๋ก ๊ฐ์ ์ข
๋ฃ๋ฅผ ์งํํด ์ค๋๋ค.
while 1์ ์ฌ์ฉํด๋ True๋ ๊ฐ์ ์กฐ๊ฑด์ด๋ฏ๋ก ๋์ผํ๊ฒ ๋ฌดํ ๋ฐ๋ณต์ด ๋ฉ๋๋ค.
์ด๋ฒ์๋ while๋ฌธ์ ํ์ฉํ ๊ธฐ๋ณธ์ ์ธ ์์ ๋ฅผ ํ๋ฒ ํ์ธํด ๋ณด๊ฒ ์ต๋๋ค.
while๋ฌธ์ for๋ฌธ ๋ฐ๋ณต๋ฌธ์ฒ๋ผ ์ฌ์ฉํ์ฌ Hello, World! ๋ฅผ 100๋ฒ ์ถ๋ ฅํด ๋ณด๊ฒ ์ต๋๋ค.
i = 0 # ์์ ๊ฐ (์ด๊ธฐ์)
while i < 100: # while ์กฐ๊ฑด์
print('%d. Hello, World!' %i)
i = i + 1 # i += 1 (์ฆ๊ฐ์, 1์ฉ ์ฆ๊ฐ)
while๋ฌธ์ ๋ฐ๋ณต ํ์๊ฐ ์ ํด์ ธ ์๋ ๊ฒฝ์ฐ ์ ์์ ์ฒ๋ผ for๋ฌธ ๋ฐ๋ณต๋ฌธ๊ณผ ๊ฐ์ด ์ฌ์ฉํ ์ ์์ต๋๋ค.
๊ธฐ๋ณธ์ ์ธ ํํ๋ ์๋์ ๊ฐ์ต๋๋ค.
๋ณ์ = ์์ ๊ฐ
while ๋ณ์ < ๋ ๊ฐ:
๋ณ์ = ๋ณ์ + ์ฆ๊ฐ ๊ฐ
๊ทธ๋ ๋ค๋ฉด for ๋ฐ๋ณต๋ฌธ๊ณผ while ๋ฐ๋ณต๋ฌธ์ ์ธ์ ์ด๋ป๊ฒ ๊ตฌ๋ถํด์ ์ฌ์ฉํ๋์ง ์๋ฌธ์ด ๋์์ฃ ?
for ๋ฐ๋ณต๋ฌธ์ ์ฌ์ฉํ ๋ ์ธ์ ๋ฐ๋ณต์ while ๋ฐ๋ณต๋ฌธ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
for ๋ฐ๋ณต๋ฌธ์ผ๋ก๋ ๋ฌดํ ๋ฐ๋ณต์ ์คํํ ์ ์์ง๋ง while ๋ฐ๋ณต๋ฌธ์ ๊ฐ๋ฅํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ while ๋ฐ๋ณต๋ฌธ์์๋ ์กฐ๊ฑด์ด ์ ์ผ ์ค์ํ ๋ถ๋ถ์ ๋๋ค.
์ด๋ฒ์๋ ์กฐ๊ฑด์ด ์ค์ํ ๊ฒฝ์ฐ์ while๋ฌธ ์์ ๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
my_list = []
n = int(input('์ ์๋ฅผ ์
๋ ฅํ์ธ์ (์ข
๋ฃ๋ 0์ ์
๋ ฅํ์ธ์) >>> '))
while n != 0: # n์ด 0์ด ๋๋ฉด ์ข
๋ฃ
my_list.append(n) # ๋ฆฌ์คํธ์ ๋ณ์ n์ ๊ฐ์ ์ถ๊ฐํ๋ค
n = int(input('์ ์๋ฅผ ์
๋ ฅํ์ธ์ (์ข
๋ฃ๋ 0์ ์
๋ ฅํ์ธ์) >>> '))
print(my_list)
์ฌ์ฉ์๊ฐ ์ํ ๋๊น์ง ์
๋ ฅํ ์ ์๋ฅผ ๋ฆฌ์คํธ์ ๋ด์ ์ถ๋ ฅํ๋ ์ฝ๋์
๋๋ค.
์ฒซ ์งธ์ค์์ my_list๋ผ๋ ๋ฆฌ์คํธ๋ฅผ ์ ์ธํ์ต๋๋ค.
๋ ๋ฒ์งธ ์ค์์๋ ์ฌ์ฉ์์๊ฒ input์ ํตํด ์ ์๋ฅผ ์ ๋ ฅ๋ฐ๊ณ n์ด๋ผ๋ ๋ณ์ ๋ด์ ์ ์ธํ์ต๋๋ค.
์ฌ์ฉ์์๊ฒ ์ข ๋ฃ๋ฅผ ์ํ ๊ฒฝ์ฐ 0์ ์ ๋ ฅํ๋ผ๋ ์๋ด๋ ๊ฐ์ด ์ฌ์ฉํ์์ต๋๋ค.
while๋ฌธ์์๋ n != 0 ์ด๋ ์กฐ๊ฑด์ ๋ฃ์ด ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ n์ด 0์ด ์๋๋ฉด ๋ฌดํ ๋ฐ๋ณต์ด ๋๊ฒ ํ์ต๋๋ค.
while ๋ฐ๋ณต๋ฌธ๋ if ์กฐ๊ฑด๋ฌธ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก while๋ฌธ์ด True์ผ ๊ฒฝ์ฐ ๋ฐ๋ณต ์คํ๋ ๋ฌธ์ฅ์ while๋ฌธ ์๋์ค์ ๋ค์ฌ ์ฐ๊ธฐ 4์นธ์ ํฉ๋๋ค. ์คํ๋ ๋ฌธ์ฅ์๋ ๋ฆฌ์คํธ์ ๊ฐ์ ์ถ๊ฐํ๋ ํจ์์ธ append()๋ฅผ ์ด์ฉํด ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ n์ my_list์ ๋ด๋๋ก ํ์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ข ๋ฃ๋๊ธฐ ์ ๊น์ง ์ฌ์ฉ์๊ฐ ๊ฐ์ ๊ณ์ ์ ๋ ฅํ ์ ์๋๋ก inputํจ์๋ฅผ ๋ด์ ๋ณ์ n๋ ์คํํ ๋ฌธ์ฅ์ ์ถ๊ฐํ์ต๋๋ค.
์ฌ์ฉ์๊ฐ 0์ ์ ๋ ฅํ๊ณ ๋ฐ๋ณต๋ฌธ์ด ์ข ๋ฃํ๊ฒ ๋๋ฉด while๋ฌธ์ ํ์ถํด print(my_list)๊ฐ ์คํ๋์ด ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ๋ชจ๋ ์ ์๊ฐ list์ ๋ด๊ฒจ ์ถ๋ ฅ๋ฉ๋๋ค.
print(my_list)๋ ์ต์ข
์ ์ผ๋ก ๋ง์ง๋ง์ ํ๋ฒ ์คํ๋ ๋ฌธ์ฅ์ด๋ฉฐ, while๋ฌธ ์์์ ๋ฐ๋ณต๋์ง ์๋๋ก ๋ค์ฌ ์ฐ๊ธฐ ์์ด ์์ฑํด ์ค๋๋ค.
์ปฌ๋ ์ ์๋ฃํ์ธ list๊ฐ ๊ถ๊ธํ์๋ค๋ฉด ์๋ ํฌ์คํ ์ ํ์ธํด ์ฃผ์ธ์๐
2.while ๋ฐ๋ณต๋ฌธ์ ์ค์ฒฉ๐
ํ์ด์ฌ while๋ฌธ์ ํ๋์ while ๋ฐ๋ณต๋ฌธ ์์ ๋ ๋ค๋ฅธ while๋ฐ๋ณต๋ฌธ์ ์ฌ์ฉํ ์๋ ์์ต๋๋ค.
๋ฐ๊นฅ์ ์์นํ while ๋ฐ๋ณต๋ฌธ์ด ํ๋ฒ ๋ฐ๋ณต๋ ๋ ์์ชฝ while ๋ฐ๋ณต๋ฌธ์ด ๋ฌดํ ๋ฃจํ๋ฉ๋๋ค.
while ๋ฐ๋ณต๋ฌธ์ ์ค์ฒฉ์ ํตํด์ ์กฐ๊ฑด์ด ์ฌ๋ฌ ๊ฐ ์ผ ๋, ์ฆ ๋ณต์กํ ์กฐ๊ฑด๊ณผ ์ํฉ์์ ํ๋ก๊ทธ๋จ์ ์คํ์ ์ ์ดํ ์ ์์ต๋๋ค.
while๋ฌธ์ ์ค์ฒฉ์ผ๋ก ํ์ฉํ ๊ตฌ๊ตฌ๋จ ๋ง๋ค๊ธฐ ์์ ๋ฅผ ํตํด ํ์ธํด ๋ณด๊ฒ ์ต๋๋ค.
dan = 2 # ๊ตฌ๊ตฌ๋จ์ ๋จ
while dan <= 9: # 2~9๋จ
print('----{}๋จ----'.format(dan)) # ----2๋จ----
n = 1 # ๋จ์ ๊ณฑํด์ง๋ ์
while n <= 9: # 1~9
print(f'{dan} x {n} = {dan * n}') # 2 x 1 = 2
n += 1 # n = n + 1 -> ๊ณฑํด์ง๋ ์๋ฅผ 1 ์ฆ๊ฐ
print() # ๋น ์ค์ ์ถ๊ฐ
dan += 1 # dan = dan + 1 -> ๋จ์ 1 ์ฆ๊ฐ
๊ตฌ๊ตฌ๋จ์ ๋จ์ ๋ํ๋ด๋ dan์ด๋ผ๋ ๋ณ์์ 2๋ถํฐ ์์ํ ์ ์๊ฒ ๋ด๊ณ ์ ์ธํ์ต๋๋ค.
while๋ฌธ์์ dan์ด 9์ ๊ฐ๊ฑฐ๋ ์์ ๋๊น์ง ๋ฐ๋ณต๋๊ฒ ์กฐ๊ฑด์ ๋ฃ๊ณ ์ฐธ์ผ ๋ ์คํ๋ ๋ฌธ์ฅ์ผ๋ก print('----{}๋จ----'.format(dan))๋ฅผ ์์ฑํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋จ์ ๊ณฑํด์ง๋ ๋ณ์์ธ n์ด 1๋ถํฐ ์์๋ ์ ์๊ฒ ์ ์ธํด ์ค๋๋ค.
์ด๋ฒ์๋ dan <= 9 ๋ฐ๋ณต๋ฌธ์ด ํ๋ฒ ๋ฐ๋ณต๋ ๋ ์ฌ๋ฌ ๋ฒ ๋ฐ๋ณต๋ ๋ ๋ฒ์งธ while ๋ฐ๋ณต๋ฌธ์ dan์ ๊ณฑํด์ง๋ ๋ณ์ n์ด 9 ์ดํ ์ผ ๋๊น์ง ๋ฐ๋ณต๋๊ฒ ์กฐ๊ฑด์ ์์ฑํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ print(f'{dan} x {n} = {dan * n}')๋ฅผ ํตํด 2 x 1 = 2 ์ด ์ฐ์ฐ, ์ถ๋ ฅ๋๊ฒ ํด ์ค๋๋ค.
n += 1 ( n = n + 1๊ณผ ๊ฐ์)์ ํตํด n์ด 2๊ฐ ๋๊ฒ ๋ง๋ค์ด while n <= 9: ๋ฐ๋ณต๋ฌธ์ผ๋ก ๊ฐ ํ print(f'{dan} x {n} = {dan * n}')๋ฅผ ๊ฑฐ์ณ 2 x 2 = 4 ๊ฐ ์ฐ์ฐ, ์ถ๋ ฅ๋๊ฒ ํด ์ค๋๋ค.
์์ ๊ฐ์ ๊ณผ์ ์ด ๊ณ์ ๋ฐ๋ณต๋๋ค๊ฐ 2 x 9 = 18์ด ์ถ๋ ฅ๋๊ณ n += 1์ ๋ง๋๋ฉด ์ด๋ฒ์๋ n์ด 10์ด ๋๋ฏ๋ก ์์ชฝ while ๋ฐ๋ณต๋ฌธ์ธ while n <=9 ์ ์กฐ๊ฑด์์ ๋ํ ๊ฑฐ์ง์ด ๋์ด ์์ชฝ ๋ฐ๋ณต๋ฌธ์ ํ์ถํ๊ณ print()๋ก ๊ฐ์ ๋น ์ค์ ์ฝ์
ํ ํ dan += 1์ ๋ง๋ dan์ 3์ผ๋ก ์ฆ๊ฐ์์ผ ์ค๋๋ค. dan 3์ด ๋๋ฉด ๋ฐ๊นฅ while ๋ฐ๋ณต๋ฌธ์ธ while dan <= 9: ์ผ๋ก ๋์๊ฐ์ print('----{}๋จ----'.format(dan))์ด ์คํ๋์ด ---- 3๋จ ----์ด ์ถ๋ ฅ๋ฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ค์ 3๋จ์ ๊ณฑํด์ง ์ ์ธ n = 1์ด ์์ชฝ ๋ฐ๋ณต๋ฌธ์ธ while n <= 9๋ฅผ ํตํด 3 x 9 = 27์ด ๋ ๋๊น์ง ๋ฐ๋ณต ์ถ๋ ฅ๋ฉ๋๋ค.
์ด ๊ณผ์ ์ด 2~9๋จ๊น์ง ๊ณ์ ๋ฐ๋ณต๋ฉ๋๋ค.
ํ์ด์ฌ while ๋ฐ๋ณต๋ฌธ ์์ ์ธ ๊ตฌ๊ตฌ๋จ ๋ง๋ค๊ธฐ ์ฝ๋ ์์๊ฐ ์ด๋ป๊ฒ ์คํ๋๋์ง ์ ์ฒด ๊ณผ์ ์ ์ดํด๋ณผ๊น์?
3.while break ๐
๋ฐ๋ณต๋ฌธ ๋ด๋ถ์์๋ง ์ฌ์ฉํ ์ ์๋ ํน์ํ ํค์๋๊ฐ ์์ต๋๋ค.
๋ฐ๋ก break์ continue์ ๋๋ค.
break ํค์๋๋ ๋ฐ๋ณต๋ฌธ์ ๋ฒ์ด๋ ๋ ์ฌ์ฉํฉ๋๋ค.
๋ฌดํ ๋ฐ๋ณต๋ฌธ์ ๋ง๋ค๊ณ , ๋ฐ๋ณต๋ฌธ์ ํ์ถํ ๋ ๋ง์ด ์ฌ์ฉ๋ฉ๋๋ค.
ํ์ด์ฌ while๋ฌธ๊ณผ break๋ฅผ ์จ์ ๋ฌดํ ๋ฐ๋ณต์ ํ์ถํ๋ ์ฝ๋ ์์๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
i = 0
while True: # ๋ฌดํ ๋ฐ๋ณต
print(i, end=' ') # i์ถ๋ ฅ
i += 1 # i = i + 1
if i == 100: # i๊ฐ 100์ด ๋๋ฉด
break # ์ ์ด ํ๋ฆ์ ๋น ์ ธ๋์จ๋ค (๋ฐ๋ณต๋ฌธ์ ์ข
๋ฃ)
0๋ถํฐ 99๊น์ง ์ถ๋ ฅํ๊ณ 100์ด ๋๋ฉด ๋ฐ๋ณต๋ฌธ์ ์ข
๋ฃํ๋ ์์ ์
๋๋ค.
while True ๋ฐ๋ณต๋ฌธ์ ์ด์ฉํด i ๊ฐ 99๊น์ง ์ถ๋ ฅ๋๋๋ก ํ ํ if i == 100์ด๋ ์กฐ๊ฑด์ ๋ฃ์ด i ๊ฐ 100์ด ๋๋ฉด ๋ฐ๋ก ์๋์ค์ ์๋ break๊ฐ ์คํ๋์ด ์ ์ด ํ๋ฆ์ ๋น ์ ธ๋์ค๊ฒ ๋ฉ๋๋ค.
if ์กฐ๊ฑด๋ฌธ์ด ๊ถ๊ธํ์๋ค๋ฉด! ์ง๋ ํฌ์คํ ์ ์ฐธ๊ณ ํด ์ฃผ์ธ์๐
์ ๋ต์ ๋งํ๋ฉด ๋ฐ๋ณต๋ฌธ์ด ์ข ๋ฃ๋๋ ์ฝ๋๋ก๋ ์ฌ์ฉํ ์ ์๊ฒ ์ฃ ?
while True:
answer = input('์ธ๊ณ์์ ๊ฐ์ฅ ํฐ ๋ฐ๋ค๋ ๋ฌด์์ผ๊น์? >>>')
if answer == 'ํํ์' or answer == 'Pacific Ocean':
print('์ ๋ต์
๋๋ค~!')
break # ๋ฐ๋ณต๋ฌธ์ ์ข
๋ฃ
else:
print('์ค๋ต์
๋๋ค. ๋ค์ ์๋ํด ๋ณด์ธ์.')
์ด ์ฝ๋์์ ๋ฌดํ ๋ฃจํ๋ฅผ ํตํด ์ฌ์ฉ์์๊ฒ ๊ณ์ ํด์ฆ์ ์ง๋ฌธ์ ํ๊ณ ์ฌ์ฉ์๊ฐ ์ ๋ต์ ์
๋ ฅํ๋ฉด ๋ฐ๋ณต๋ฌธ์ ํ์ถํ๊ณ ์ข
๋ฃํ๊ฒ ๋ฉ๋๋ค. ๋ else์๋ print() ํจ์๋ฅผ ํตํด ์ค๋ต์ ์์ฑํ์ ๊ฒฝ์ฐ ๋ค์ ์๋ํ๋๋ก ์ ๋ํฉ๋๋ค.
4.while continue๐งโ๏ธ
ํ์ด์ฌ continue ํค์๋๋ ํ์ฌ ๋ฐ๋ณต์ ์ ์ธํ๊ณ ๋ค์ ๋ฐ๋ณต์ผ๋ก ๋์ด๊ฐ ๋ ์ฌ์ฉํฉ๋๋ค.
continue์ด ํค์๋๋ break์ ๋ง์ฐฌ๊ฐ์ง๋ก ํ์ด์ฌ์ ๋ชจ๋ ๋ฐ๋ณต๋ฌธ์์ ์ฌ์ฉํ ์ ์์ง๋ง ํ์ด์ฌ while๋ฌธ์ continue ํค์๋๋ฅผ ์ฌ์ฉํด ์์ ๋ฅผ ๋ง๋ค์ด ๋ณด๊ฒ ์ต๋๋ค.
a = 0
while a < 10:
a += 1 # a = a + 1
if a % 2 == 0: # ์ง์๋ผ๋ฉด
continue
print(a)
0์์ 10๊น์ง ์ ์ค์์ ํ์๋ง ์ถ๋ ฅํ๋ ์ฝ๋์
๋๋ค.
while a < 10์์ 10์ด ๋๊ธฐ ์ ๊น์ง a +=1์ ํตํด 1์ฉ ์ฆ๊ฐํ๋ฉฐ ๋ฐ๋ณต๋ฉ๋๋ค.
๊ทธ๋๋ง๋ค if a % 2 == 0์ด๋ผ๋ ์กฐ๊ฑด์ ๋ง๋์ True๊ฐ ๋๋ฉด (์ง์์ผ ๋ True) ๋ฐ๋ก ์๋์ค์ ์์นํ continue๊ฐ ์คํ๋ฉ๋๋ค.
๊ทธ๋ผ ๋ค์์ค์ ์์นํ print(a)๊ฐ ์คํ๋์ง ์๊ณ while a < 10์ผ๋ก ๋์ด๊ฐ๊ฒ ๋์ด ์ง์๋ ์ถ๋ ฅ์ด ๋์ง ์์ต๋๋ค.
์ด๋ฒ์๋ continue๊ฐ ์ด๋ป๊ฒ ์คํ๋๋์ง ๊ฐ์ด ์ดํด๋ณด๊ฒ ์ต๋๋ค.
5.ํต์ฌ ๋ด์ฉ๐