1. 배운 내용

2. 작성한 코드

3. 숙제





배운 내용

반복문 중첩

반복문을 여러개를 겹쳐서 사용하는 것을 중첩 반복문이라 한다.
2개가 겹쳐 있으면 2중 반복문, 3개가 겹쳐 있으면 3중 반복문이라 부른다.

예제1 - 99단 출력 프로그램

i = 2
while i <= 9:
    j = 1
    while j <= 9:
        print(i, ' x ', j, ' = ', i * j)
        j = j + 1
    i = i + 1

''' 출력 결과
2 x 1 = 2
2 x 2 = 4
2 x 3 = 6
.
.
.
9 x 8 = 72
9 x 9 = 81
'''

i를 2~9 까지, j를 1~9 까지 반복하게 하여 구구단을 출력하는 프로그램이다.
을 통해 while문의 범위를 확실하게 잡아주어야 한다.

for문

내가 원하는 횟수 만큼 반복하고 싶을 때 for문을 사용하면 while문 보다 더 편하게 반복문을 작성할 수 있다.

for 변수이름 in range(반복 횟수):
    코드
    코드
    코드
    .
    .

[ for i in range(10): ] 이라는 코드라면 총 10번의 반복을 진행하게 된다.
여기서 유의해야 할 점은 반복문이 진행될 때마다 i의 값이 0 에서 9 까지 증가한다는 것이다. 컴퓨터가 숫자를 0 부터 센다는 것을 기억하자.


예제2 - 1~100 까지 합 구하기

sum = 0
for i in range(101):
    sum = sum + i    
print(sum)

''' 출력 결과
5050
'''

for문을 이용해 1~100 까지의 합을 구하는 프로그램이다.


작성한 코드

for.py

예제1의 while문으로 작성했던 99단 코드를 for문으로 대체한 코드이다.

for i in range(9):
    for j in range(9):
        print((i+1), ' x ', (j+1), ' = ', (i+1) * (j+1))

''' 출력 결과
2 x 1 = 2
2 x 2 = 4
2 x 3 = 6
.
.
.
9 x 8 = 72
9 x 9 = 81
'''


숙제

문제 1번
아래의 코드에서 while문 대신 for문을 사용하도록 수정하세요.
복사 붙여넣기 허용! 하지만 직접 치는걸 권장.

friendCount = 6
appleNumbers = [ 0, 0, 0, 0, 0, 0]

i = 0
while i < friendCount:
    print(i, end='')
    appleNumbers[i] = int(input("번째 친구가 가져갈 사과는 몇 개인가요?: "));
    i = i + 1

i = 0
while i < friendCount:
    print(i, "번째 친구가 가져간 사과의 개수는 ", appleNumbers[i], "개 입니다.")
    i = i + 1


문제 2번
다음 코드에서 반복되는 코드를 for문을 사용해서 수정하세요.

scores = [ 0, 0, 0, 0, 0 ]

print(0, end='')
scores[0] = int(input("번쨰 과목의 성적을 입력하세요: "))

print(1, end='')
scores[1] = int(input("번쨰 과목의 성적을 입력하세요: "))

print(2, end='')
scores[2] = int(input("번쨰 과목의 성적을 입력하세요: "))

print(3, end='')
scores[3] = int(input("번쨰 과목의 성적을 입력하세요: "))

print(4, end='')
scores[4] = int(input("번쨰 과목의 성적을 입력하세요: "))

print('총점은 ', scores[0] + scores[1] + scores[2] + scores[3] + scores[4], '점 입니다.')


문제 3번
위 for문을 사용한 구구단 예제에서 짝수단(2단, 4단, 6단, 8단)만 출력하도록 수정해보세요.

문제 4번
(이 문제는 난이도가 좀 있으니 해보고 싶은 사람만 풀어봐도 괜찮음) 중첩 반복문을 사용하는 문제 사용자에게 가로,세로 길이를 입력 받아 [가로 x 세로] 크기의 체크무늬 패턴을 출력하세요.


가로 입력: 5
세로 입력: 5
@ # @ # @
# @ # @ #
@ # @ # @
# @ # @ #
@ # @ # @

------------

가로 입력: 3
세로 입력: 4
@ # @
# @ #
@ # @
# @ #

------------

가로 입력: 10
세로 입력: 2
@ # @ # @ # @ # @ #
# @ # @ # @ # @ # @

숙제를 끝내면 선생님 카톡으로 다 했다고 연락 주렴!