[엔트리파이선]<7>if 명령어로 선택구조 만들기

사람은 여러 가지 상황을 한꺼번에 비교하고 선택을 할 수 있습니다. 그러나 컴퓨터는 두 가지 상황만 비교가 가능하죠. 이 때문에 컴퓨터에게 문제 상황을 제시할 때는 항상 두 가지 상황을 줘야 합니다.

짝수·홀수 출력
<짝수·홀수 출력>

사람은 비교하기 위한 조건을 항상 정확하게 제시하지 않아요. 하지만 컴퓨터는 주관과 직관이 없기 때문에 항상 정확하고 객관적인 기준을 제시해야 합니다. 그에 따라 판단할 수 있도록 해야 해요. 간단한 기준을 제시해 컴퓨터가 선택하게 해봅시다.

'if문'은 선택구조를 만드는데 가장 많이 사용되는 명령어입니다. if문으로는 선택구조를 완성할 수가 없어요. 선택된 결과에 따라 실행되는 명령어가 필요합니다. 하지만 그보다 더 중요한 요소가 있어요. 바로 선택할 수 있는 기준이 필요해요.

논리연산 블록. 왼쪽은 if, 오른쪽은 else
<논리연산 블록. 왼쪽은 if, 오른쪽은 else>

컴퓨터는 두 가지만 판단 할 수 있죠. 명확하게 참과 거짓이 나와야 해서 논리연산이 필요합니다. 논리연산을 이용해서 선택할 수 있는 기준을 만들어줘야 해요. 엔트리파이선에서 선택 구조 첫 번째 if를 살펴봅시다.

if 명령어는 지금까지 Entry.print 명령어에서 살펴보았던 구조와 다르게 'Entry.'라는 표현이 없습니다. 엔트리 고유 명령어가 아닌 파이선에서도 동일하게 사용되는 명령어이기 때문에 'Entry.' 표현이 사용되지 않습니다.

예시로 나왔던 짝수와 홀수를 구분하는 프로그램을 만들어 봅시다. 먼저 n이라는 변수를 만들고 'Entry.input()'을 이용해 [그림1]과 같이 숫자 값을 입력 받고 저장해요.

[그림1] 홀수·짝수 구분 프로그램 만들기
<[그림1] 홀수·짝수 구분 프로그램 만들기>

선택구조를 위해 변수 n에 저장 된 값이 짝수인지 홀수인지 판별할 수 있는 기준, 즉 논리연산을 만들어야 합니다. 아래 따옴표(') 안 내용을 생각해봅시다.

'컴퓨터가 선택을 하기 위해서는 두 가지 경우로 나눠야해. > 자연수를 입력할 것이고 이 자연수는 짝수와 홀수 두 가지로 나눌 수 있어. > 짝수와 홀수를 구분 할 수 있는 기준은 무엇일까. > 2의 배수는 모두 짝수네. > 2의 배수가 아닌 숫자는 모두 홀수인가. > 그렇구나. 2의 배수는 짝수이고 그 외에는 홀수라고 할 수 있겠구나. > 그렇다면 2로 나눈 나머지가 0이라면 짝수, 아니면 홀수라고 출력을 해보자.'

[그림2] 논리연산 살펴하기
<[그림2] 논리연산 살펴하기>

선택구조를 만들 때는 항상 선택을 위한 상황과 논리연산을 먼저 고민해야 합니다. 위에서 작성된 명령어에 if를 추가하고 그 안에 논리연산을 채워 넣읍시다. 중요한 논리연산을 더 자세히 살펴보도록 할게요. [그림2]에서 'n%2' 는 n 변수에 저장된 값을 2로 나눈 나머지를 뜻하는 명령어입니다. 나눈 나머지는 '==0' 으로 연결돼 있어요. 나눈 나머지가 0과 같다는 뜻입니다.

n%2==0 해석
<n%2==0 해석>

이제 논리연산이 참일 때 실행될 명령어와 거짓일 때 실행될 명령어를 입력해 봅시다. while 구문과 마찬가지로 참일 때는 들여쓰기를 통해서 실행되도록 해요. 거짓일 때는 if 명령어를 벗어나도록 프로그래밍 해봅시다. 10을 입력하면 홀수와 짝수 모두가 나오는 것을 볼 수 있습니다.

[그림3] if문과 else: 명령어 사용하기
<[그림3] if문과 else: 명령어 사용하기>

문제를 해결하기 위해 논리 연산이 거짓일 때 실행되는 명령어를 입력해요. 'else:' 명령어를 사용하면 됩니다. else는 if와 함께 항상 같이 움직여야 해요. [그림3]과 같이 명령어를 천천히 따라 입력해보도록 해요. 이제 홀수와 짝수가 제대로 출력될 거예요.

김슬기 안산선부초 교사

위방향 화살표