관리 메뉴

hye-_

다중 IF 문 본문

CS/C언어1

다중 IF 문

hyehh 2023. 12. 5. 23:27
728x90
반응형
SMALL
728x90
SMALL
반응형

다중 IF 문

다중 if 문 
(multiple if)
● 서로 독립적인 조건을 여러개 비교하는 경우
● else if로 연결되지 않은 if 문
중첩 if 문
(Nested if)
● if 문을 한 번 실행하고, 그 결과에 다시 if문을 실행하는 것
● if 문 안에 또 다른 if 문이 있는 것 
연속적인 if 문 ● 조건을 검사하고 다른 조건을 검사하고 또 다른 조건을 검사하는 것 

01. 중첩 IF 문 이해

1. 기본 IF 문

(1) IF 문 형식 

 if문을 사용할 때 대문자로 쓰면 안 된다. 


(2) IF 문 사용 예


(3) IF 문 형식 - 블록 

블록

여러개의 명령문을 하나로 취급한다. 그래서 복합문이라고도 한다. 

 

복합문이란 문장이 여러 개다.

하지만 블록으로 했기 때문에 단일문 취급을 한다.  


(4) IF 문 사용 예 - 블록

big과 small 숫자 두 개를 받는다.

big(7), small(5)일 때 big이 small보다 크면 문제가 없는데 작으면 문제가 생긴다. 그럴 경우 바꿔주는 if문이다.

 

이렇게 바꿔주는 것을

스왑 swap 알고리즘이라고 한다.

 

스왑 알고리즘에서 기억할 것은

사용 변수를 두어 순서를 맞춘다. 

 

① temp = big  

temp에 big에 있는 값을 넣는다. 그렇다고 해서 big에 있는 값이 big에서 없어지지는 않는다.

 

② big = samll

위에서 big의 값을 옮겼으니 이번에는 small의 값을 옮긴다. 옮긴다는 뜻은 small에 있는 값을 복사해서 big을 덮어쓴다는 말이다. big이 기존에 5가 있었는지, 3이 있었는지 상관없다. 

대등 연산자 = 는 오른쪽에 있는 것을 왼쪽에 넣는 연산자인데, 왼쪽에 뭐가 있든지 상관없이 들어간다. 

그래서 지워질 수 있으니 조심해라 

 

③ small = temp

temp에 있는 값은 big의 값이다. big에 있던 값을 small에 넣으면서 서로의 값이 바뀌는 게 끝났다. 


2. IF-ELSE 문

(1) if-else 문 형식


(2) if-else 문 사용 예


(3) if-else 문 형식 -블록


a, b  두 개의 값을 받았다. a= 5, b= 3 

① a가 b보다 크거나 같으면

② big에다가 a를 넣고,

③ small에 b를 넣어라 

④ big, small이 출력된다. 

 

a의 값은 변하지 않는다. a에 있는 값을 복사해서 big에 넣는 것이기 때문이다.

b도 마찬가지로 값이 변하지 않는다. b에 있는 값을 복사해서 small에 넣는것이기 때문이다.


3. 중첩 IF 문 (Nested if)

if 문도 하나의 문장, 하나의 명령문이다. 

if (조건식) 문장;  이게 하나의 문장이다. 

 

if 문 안에 다른 if 문이 들어갈 수 있다. 예를 들어서 점수가 80점 이상이고 90점 이상이면 A학점

점수가 80점 이상인지 한 번 본다음에 80점 이상인 점수이면서 90점 이상인지를 또 보는 것이다. 

 

즉, 중첩 if 문이란 if 문을 한 번 실행하고, 그 결과에 다시 if문을 실행하는 것이다. 

if문 안에 또 다른 if문이 있는 것을 말한다.


(1) 중첩 if 문 형식 

참이면 if문을 보고 거기서 또 참이면 명령문을 수행한다

거짓이면 나간다.

 

score 점수가 80보다 크거나 같으면 그 안의 if문을 본다. 

그리고 score가 90보다 크거나 같으면 A학점을 준다.


(2) 중첩 if 문 형식

 

if문 안에 if-else가 들어갈 수도 있다. 

● if-else를 하나의 문장이라고 본다.

● 명령문 3은 if문과는 상관없이 항상 실행된다.

 


(3) 중첩 if 문 형식

if-else문안에 if-else가 올 수도 있다.


if와 else의 매칭 문제

① score 변수의 값이 80보다 크면 그 안의 if문으로

② score 변수의 값이 90보다 크면 A학점 그렇지 않으면 B학점 

 

① score 변수의 값이 80보다 크면 그 안의 if문으로, 그렇지 않으면 F학점  

② score 변수의 값이 90보다 크면 A학점 그렇지 않으면 아무것도 출력 안 한다.


02. 연속적인 IF 문 이해

1. 다중 if 문 (multiple if)

(1) 다중 if 문 (multiple if)

중첩 if 문과 연속적인 if 문을 합쳐서 

다중 if 문이라고 한다. 

 

else if로 연결되지 않은 if 문이 여러 개인 경우

else if문은 if문에 연결되어 있어서 하나로 본다. 

즉, 서로 독립적인 조건을 여러 개 비교하는 경우

 

종류

중첩 if 문 if 문 안에 다른 if문이 있는 것을 말한다.
연속적인 if 문 if 조건을 검사하고, 다른 if 조건을 검사하고, 또 다른 if 조건을 검사하는 것을 말한다.  

 


2. 연속적인 if 문

(1) 연속적인 if 문 형식

 
 
 

 

 

기본요금은 만원이다.

① if 나이가 60보다 크거나 같으면 5천 원 빼준다.

② if 지역 주민이면 또 5천원 빼준다.  


3. else if 문

(1) else if 문 형식 


조건식에 맞는 명령문이 3개가 있는데,

3중에 하나만 실행하게 만든다. 그것을 else if 문이라고 한다. 


0, 양수, 음수 구하기

 

score이 0일때의 실행 순서 


① score이 0이냐?
0이여서 "0임" 을 출력해준다.
1번 if문은 항상 물어본다. 
score이 5일때의 실행 순서 

① score이 0이냐?
5이여서 else if로 간다. 
1번 if문은 항상 물어본다. 

② score가 0보다 크냐?
참이여서 "양수" 를 출력해준다. 
score이 -3일때의 실행 순서 


① score이 0이냐?
-3이여서 else if로 간다. 
1번 if문은 항상 물어본다

② score가 0보다 크냐?
거짓이여서 else로 간다.

③ else는 if가 없으니깐 바로 실행한다.
"음수"를 출력해준다.

A, B, C 학점

score가 98일때

① score가 90보다 크냐?
크다. 그렇기에 "A학점" 출력된다.
score가 79일때


① score가 90보다 크냐?
안크다. else if로 내려간다. 

② score가 80보다 크냐?
안크다. else if로 내려간다.

③ score가 70보다 크냐? 
크다. "C학점" 출력된다. 
score가 68일때


① score가 90보다 크냐?
안크다. else if로 내려간다. 

② score가 80보다 크냐?
안크다. else if로 내려간다.

③ score가 70보다 크냐? 
안크다. else로 내려간다.

④ else는 if가 없기때문에 바로 실행된다.
"F학점" 출력된다.

 

728x90
반응형
LIST

'CS > C언어1' 카테고리의 다른 글

IF 문과 SWITCH 문  (1) 2023.12.06
SWITCH 문  (2) 2023.12.06
조건문 IF  (0) 2023.12.04
증감 연산자, 관계 연산자, 논리 연산자  (0) 2023.12.01
수식과 산술 연산자 (나머지 연산, 대입 연산자, Cast 연산자)  (1) 2023.12.01