C++ 알고리즘 기초10 -조건문 배우기1(if, else)-

1. 조건문

 

특정 조건에 해당하는 경우에만 코드를 수행하고 싶은 경우

 

C++의 조건문 기본 포맷

 

if (조건) {
    
    조건이 참일 경우에만 수행
}

 

if 내부라는 범위를 명확히 정의하기 위해 C++에서는 중괄호 { }를 사용해서 지정

 

if가 지정하는 조건을 만족하면, 해당 블록 내부에 있는 코드만을 실행

 

#include <iostream>
using namespace std;

int main() {
    int a;

    cin >> a;

    if (a > 10) {
        a += 5;
        cout << a << endl;
        a -= 6;
    }

    cout << a;
    return 0;
}
55

60
54

 

자바랑 마찬가지로 { }블록을 쓰지 않는다면, if조건 다음에 나오는 오직 한 줄의 코드만, if 조건에 의해 실행된다.

 

다음 a > 10이면, a += 5가 실행되고, a -= 6도 실행된다.

 

반대로 a <= 10이면, a+=5는 실행되지 않고, a-=6만 실행된다.

 

a -=6은 if 조건문과 관계없이 항상 실행된다.

 

if (a > 10)
    a += 5;
    a -= 6;

 

생략할수 있다고 하지만.. 현업 개발자 피셜로 중괄호는 반드시 사용하는것을 권장함

 

 

2. 비교 연산자

 

if문의 조건문을 위해 비교연산자 사용

 

a > b, a >= b, a < b, a <= b, a == b, a != b

 

여기서 ==은 값 뿐만 아니라, type도 일치해야한다.

 

즉, 1 == '1'은 false이다.

 

 

3. 배수 판별

 

%연산을 이용하면 a가 n의 배수인지를 판별할 수 있다.

 

a가 n의 배수라는 것은 a를 n으로 나눈 나머지가 0이라는 뜻이다.

 

a가 짝수라면, a를 2로 나눈 나머지가 0이고 홀수라면 2로 나눈 나머지가 1인지로 판

 

int a;
cin >> a;

if (a % 5 == 0) {
	cout << "multiple of 5";
}

 

4. 연습문제

 

오직 if문으로만 n이 음수인지 판단하기.

 

n을 첫번째 줄에 출력하고, n이 음수라면, 두번째 줄에 "minus"도 출력..

 

생각보다 어려울걸?

 

#include <iostream>
using namespace std;

int main() {
    
    int n;

    cin >> n;

    cout << n;

    if (n < 0){

        cout << endl << "minus";
    }
    return 0;
}

 

5. if - else 조건문

 

else라는 구문을 이용해서, if 조건에 해당하지 않는 경우에만 특정 코드를 수행하게 만들 수 있다.

 

if (조건) {
  
  여기에 조건이 참일 경우에만 수행되는 코드 작성(A)

}
else {

    여기에 조건이 거짓일 경우에만 수행되는 코드 작성(B)

}

이 위치에 있는 코드는 조건과 무관하게 항상 수행됩니다.(C)

 

중요한 점은 조건이 참이면, A,C가 수행되고 거짓이면 B,C가 수행된다.

 

else를 쓰지 않고 다음과 같이 쓴다면?

 

if (조건1) {
  
  여기에 조건이 참일 경우에만 수행되는 코드 작성(A)

}
if (조건2) {

    여기에 조건이 거짓일 경우에만 수행되는 코드 작성(B)

}

이 위치에 있는 코드는 조건과 무관하게 항상 수행됩니다.(C)

 

프로그램은 조건 1을 검사해서, 참이면 A를 수행하고 조건 2를 또 검사해서 참이면 B도 수행하게 된다.

 

if else와 if if의 차이는 if else는 조건을 검사하면 나머지는 수행 안하고..

 

if if는 모든 조건을 검사하게된다는 점

 

다시 강조해도 중요한 부분

 

 

다음은 입력받은 n이 80이상이면 "pass" 그렇지 않다면 몇점이 더 필요한지 출력하는 코드

 

#include <iostream>
using namespace std;

int main() {
    
    int n;
    cin >> n;

    if (n >= 80){
        cout << "pass";
    } else {
        cout << 80 - n << " more score";
    }
    return 0;
}
TAGS.

Comments