for i in range(시작범위, 끝범위) vs while
! 문득 이런 생각이 들었다. while은 범위 지정을 어떻게 하는 거였더라? 그냥 특정 조건에 맞는 반복을 하려면 for대신 while을 쓴다고 배웠는데 과연 이렇게 배우면 while을 제대로 사용할 수 있을까?
그저 범위가 바로 한눈에 보이는 for가 쓰기도 편하고 가독성이 좋아 while보다 for를 많이 사용하고 있었다.사람은 자기가 편하게 자주 쓰고, 제대로 이해한 것만 계속 쓰는 경향이 있다. 내가 이떄까지 while을 잘 못쓴거는 아마 "범위를 어떻게 잡아야 할지 모르겠어..." "while이랑 같이 쓰려면 변수가 좀 많은거 같아.. 왜 변수가 for문에 비해 더 많지?" 라는 생각이 많았었다.
하지만!
while문을 다시 들여다 보자
while은 애초에 범위가 주어주지 않으면 무한루프로 돌아가게 된다.
즉, 범위는 내가 정해주고 필요시에는 cut를 직접 해줘야한다.
예를 들어 반복을 1부터 시작하고 10이 넘어가면 중단 하고 싶다 라고 한다면
n=1 #=for i in range(1,
while n<11: #=for i in range(1,10) <<기능이 같다는 말이 아니라, 범위 지정이 같다는 말
코드
이런식으로 적어 주면 되는 것이다.
여기서 주의 할점은 n이 계속 1에 머무르면 반복을 못하니 꼭 코드속에 n+=1을 적어 줄것!
n=1 #시작 범위
sum=1
while n<11: #끝 범위
if n==1:
sum=1
n+=1
else:
sum*=n
n+=1
print('10! :{}'.format(sum))
