데일리 codeup/조건문

if / else if / else 조건문_220702

hayo_su 2022. 7. 2. 15:47

if 와 else 두가지만으로 case를 나누는 것이 아니라 세가지의 서로 겹치지 않는 case 로 분류하는 경우 else if 라는 구문을 이용하면, 상단 if 조건에 해당하지 않으면서 해당 else if 조건에 해당하는 경우에만 특정 코드를 수행하게 만들 수 있다.
형식

if (조건1) {
    코드1
}

else if (조건2) {
   코드2
}

else {
    코드3
}

코드4

예제

#include <iostream>
using namespace std;

int main() {

    int a;

    cin >> a;

    if (a >= 10) {
        cout << "A" << endl;
    }
    else if (a >= 5) {
        cout << "B" << endl;
    }
    else {
        cout << "C" << endl;
    }

    cout << "E";
    return 0;

}

if, if, else if를 사용하게 되면, 맨 끝에 있는 else if는 두 번째 if 하고만 쌍을 이루게 된다.

if (조건1) {
    코드1
}

if (조건2) {
   코드2
}

else if (조건3) {
    코드3
}

코드4

물의 상태

물의 온도를 정수로 입력받아 0℃ 미만일경우엔 ice, 100℃ 이상일때는vapor, 그 사이일때는 water 라고 출력하는 프로그램을 작성해주세요.

#include<iostream>
using namespace std;
int main(){
    int n;
    cin >> n;
    if (n<0)    cout << "ice";
    else if (n>= 100) cout << "vapor";
    else    cout << "water";
    return 0;
}

시력검사 2

양쪽 눈 시력의 평균값을 실수(real number)로 입력받아 1.0 이상이면 High, 0.5 이상이면 Middle, 아니면 Low라고 출력하는 프로그램을 작성해주세요.

#include<iostream>
using namespace std;
int main(){
    double n;
    cin >> n;
    if(n >= 1.0)   cout << "High";
    else if (n >= 0.5)   cout << "Middle";
    else cout << "Low";
    return 0;
}

이상인지 초과인지 정확하게 확인하자


살 수 있는 물건

n만큼의 돈으로 살 수 있는 물건 중 가장 비싼 물건을 출력하는 프로그램을 작성해보세요.

물건   가격

book  3000
mask  1000
#include<iostream>
using namespace std;
int main(){
    int n;
    cin >> n;
    if(n >= 3000)   cout << "book";
    else if(n >= 1000) cout << "mask";
    else    cout << "no";
    return 0;
}

if / elif / elif / else

else if라는 구문은 여러 번 사용이 가능합니다. else if문을 여러 번 사용하게 되면, 각 else if 당 상단 if과 모든 else if에 걸리지 않으면서 해당 else if 조건에 해당하는 경우에만 특정 코드를 수행하게 만들 수 있다.

if (조건1) {
    코드1
}
else if (조건2) {
    코드2
}
else if (조건3) {
    코드3
}
else {
    코드4
}
코드5

출석 부르기

A반의 출석번호 1번은 John, 2번은 Tom, 3번은 Paul입니다. 번호를 입력하면 해당하는 학생의 이름을 출력하는 프로그램을 작성하세요.
만약 해당 출석번호에 해당하는 학생이 없다면 Vacancy 라고 출력합니다.

#include<iostream>
using namespace std;
int main(){
    int n;
    cin >> n;
    if (n == 1) cout << "John";
    else if (n == 2)    cout << "Tom";
    else if (n == 3)    cout << "Paul";
    else    cout << "Vacancy";
    return 0;
}

등급 매기기

시험점수에 따라 등급을

90점 이상을 A,

80점 이상을 B,

70점 이상을 C,

60점 이상을 D,

60점 미만을 F 라고 합니다.

점수를 입력받아 등급을 출력하는 프로그램을 작성해주세요.

#include<iostream>
using namespace std;
int main(){
    int n;
    cin >> n;
    if (n>=90)  cout << "A";
    else if (n>=80)  cout << "B";
    else if (n>=70)  cout << "C";
    else if (n>=60)  cout << "D";
    else cout << "F";
    return 0;
}

알파벳에 따른 평가

영문 대문자를 입력받아

'S'이면 Superior,

'A'이면 Excellent,

'B'이면 Good,

'C'이면 Usually,

'D'이면 Effort,

그 외 문자이면 Failure 라고 출력하는 프로그램을 작성해주세요.

#include<iostream>
using namespace std;
int main(){
    char n;
    cin >> n;
    switch (n){
        case 'S':
            cout << "Superior";
            break;
        case 'A':
            cout << "Excellent";
            break;
        case 'B':
            cout << "Good";
            break;
        case 'C':
            cout << "Usually";
            break;
        case 'D':
            cout << "Effort";
            break;
        default:
            cout << "Failure";
            break;
    }
    return 0;
}

살 수 있는 물건 2

n만큼의 돈으로 살 수 있는 물건 중 가장 비싼 물건을 출력하는 프로그램을 작성해보세요.

물건   가격

book  3000
mask  1000
pen    500
#include<iostream>
using namespace std;
int main(){
    int n;
    cin >> n;
    if (n>=3000)    cout << "book";
    else if(n>=1000)    cout << "mask";
    else if(n>=500) cout << "pen";
    else    cout << "no";
    return 0;
}