조건문
조건에 따라 변수에 값을 할당하거나 연산을 하고 싶다면 조건문을 사용하거나 삼항연산자를 사용하면 된다.
조건문
대부분의 유명한 언어에서 조건문, 혹은, if문을 지원한다. if문은 보통 다음과 같은 구조로 되어있다.
if (조건 A):
(조건 A가 참일 경우 실행할 코드)
else if (조건 B):
(조건 A는 거짓이지만 조건 B는 참일 경우 실행할 코드)
else if (조건 C):
(조건 A, B는 거짓이지만 조건 C는 참일 경우 실행할 코드)
...
else:
(앞선 모든 조건들이 거짓일 경우 실행할 코드)
이를 각 언어에서는 다음과 같이 구현해서 쓸 수 있다.
# 다음의 규칙에 맞게 점수에 따라 성적을 매겨보도록 하자.
# - 90점 이상은 A
# - 90점 미만, 80점 이상은 B
# - 80점 미만, 70점 이상은 C
# - 70점 미만, 60점 이상은 D
# - 그 외 F
score = 87
grade = '' # 빈 값으로 초기화한다.
if score >= 90:
grade = 'A'
elif score >= 80: # 파이썬에서는 'else if'가 아니라 'elif'다.
grade = 'B'
elif score >= 70:
grade = 'C'
elif score >= 60:
grade = 'D'
else:
grade = 'F'
# 위 코드를 돌고 나서 grade는 'B'가 되어있다.
# 1학기, 2학기에 받은 점수가 모두 85점이 넘으면 good student라고 하자.
# 아래의 코드는 두 점수를 받아서 good student인지 판별해준다.
score_1, score_2 = 87, 93
is_good_student = False
if score_1 > 85 and score_2 > 85:
is_good_student = True
else:
is_good_student = True
# 하지만 이미 처음에 is_good_student를 False로 초기화했기 때문에 else문을 생략해도 된다.
if score_1 > 85 and score_2 > 85:
is_good_student = True
# 혹은 처음에 is_good_student를 True로 초기화하고 두 점수 중 하나라도 85점 이하인지
# 판별하는 방식으로 접근해도 괜찮다.
is_good_student = True
if score_1 <= 85 or score_2 <= 85:
is_good_student = False
// 다음의 규칙에 맞게 점수에 따라 성적을 매겨보도록 하자.
// - 90점 이상은 A
// - 90점 미만, 80점 이상은 B
// - 80점 미만, 70점 이상은 C
// - 70점 미만, 60점 이상은 D
// - 그 외 F
let score = 87;
let grade = ''; // 빈 값으로 초기화한다.
if (score >= 90) {
grade = 'A';
} else if (score >= 80) {
grade = 'B';
} else if (score >= 70) {
grade = 'C';
} else if (score >= 60) {
grade = 'D';
} else {
grade = 'F';
}
// 위 코드를 돌고 나서 grade는 'B'가 되어있다.
// 1학기, 2학기에 받은 점수가 모두 85점이 넘으면 good student라고 하자.
// 아래의 코드는 두 점수를 받아서 good student인지 판별해준다.
let score1 = 87, score2 = 93;
let isGoodStudent = false;
if (score1 > 85 && score2 > 85) {
isGoodStudent = true;
} else {
isGoodStudent = false;
}
// 하지만 이미 처음에 isGoodStudent를 false로 초기화했기 때문에 else문을 생략해도 된다.
if (score1 > 85 && score2 > 85) {
isGoodStudent = true;
}
// 혹은 처음에 isGoodStudent를 true로 초기화하고 두 점수 중 하나라도 85점 이하인지
// 판별하는 방식으로 접근해도 괜찮다.
isGoodStudent = true;
if (score1 <= 85 || score2 <= 85) {
isGoodStudent = false;
}
// 다음의 규칙에 맞게 점수에 따라 성적을 매겨보도록 하자.
// - 90점 이상은 A
// - 90점 미만, 80점 이상은 B
// - 80점 미만, 70점 이상은 C
// - 70점 미만, 60점 이상은 D
// - 그 외 F
int score = 87;
string grade = ""; // 빈 값으로 초기화한다.
if (score >= 90) {
grade = "A";
} else if (score >= 80) {
grade = "B";
} else if (score >= 70) {
grade = "C";
} else if (score >= 60) {
grade = "D";
} else {
grade = "F";
}
// 위 코드를 돌고 나서 grade는 "B"가 되어있다.
// 1학기, 2학기에 받은 점수가 모두 85점이 넘으면 good student라고 하자.
int score1 = 87, score2 = 93;
bool isGoodStudent = false;
if (score1 > 85 && score2 > 85) {
isGoodStudent = true;
} else {
isGoodStudent = false;
}
// else문을 생략해도 된다.
if (score1 > 85 && score2 > 85) {
isGoodStudent = true;
}
// 반대 방향으로 접근해도 괜찮다.
isGoodStudent = true;
if (score1 <= 85 || score2 <= 85) {
isGoodStudent = false;
}
// 다음의 규칙에 맞게 점수에 따라 성적을 매겨보도록 하자.
// - 90점 이상은 A
// - 90점 미만, 80점 이상은 B
// - 80점 미만, 70점 이상은 C
// - 70점 미만, 60점 이상은 D
// - 그 외 F
#include <string>
using namespace std;
int score = 87;
string grade = ""; // 빈 값으로 초기화한다.
if (score >= 90) {
grade = "A";
} else if (score >= 80) {
grade = "B";
} else if (score >= 70) {
grade = "C";
} else if (score >= 60) {
grade = "D";
} else {
grade = "F";
}
// 위 코드를 돌고 나서 grade는 "B"가 되어있다.
// 1학기, 2학기에 받은 점수가 모두 85점이 넘으면 good student라고 하자.
int score1 = 87, score2 = 93;
bool isGoodStudent = false;
if (score1 > 85 && score2 > 85) {
isGoodStudent = true;
} else {
isGoodStudent = false;
}
// else문을 생략해도 된다.
if (score1 > 85 && score2 > 85) {
isGoodStudent = true;
}
// 반대 방향으로 접근해도 괜찮다.
isGoodStudent = true;
if (score1 <= 85 || score2 <= 85) {
isGoodStudent = false;
}
삼항연산자
간단한 if문은 좀 더 짧게 표현하는 것도 가능하다. 많은 유명한 프로그래밍 언어들이 다음과 같은 삼항연산자를 지원한다.
(조건) ? (참일 경우 값) : (거짓일 경우 값)
실제 구현은 코드를 보도록 하자.
# 파이썬은 특이하게도 삼항연산자를 조금 다르게 구현한다.
# - (참일 경우 값) if (조건) else (거짓일 경우 값)
# 1학기, 2학기에 받은 점수가 모두 85점이 넘으면 good student라고 하는 문제를
# 아래와 같이 구현하는 것이 가능하다.
score_1, score_2 = 87, 93
is_good_student = True if (score_1 > 85 and score_2 > 85) else False
// 1학기, 2학기에 받은 점수가 모두 85점이 넘으면 good student라고 하는 문제를
// 아래와 같이 구현하는 것이 가능하다.
let score1 = 87, score2 = 93;
let isGoodStudent = (score1 > 85 && score2 > 85) ? true : false;
// 1학기, 2학기에 받은 점수가 모두 85점이 넘으면 good student라고 하는 문제를
// 아래와 같이 구현하는 것이 가능하다.
int score1 = 87, score2 = 93;
bool isGoodStudent = (score1 > 85 && score2 > 85) ? true : false;
// 1학기, 2학기에 받은 점수가 모두 85점이 넘으면 good student라고 하는 문제를
// 아래와 같이 구현하는 것이 가능하다.
int score1 = 87, score2 = 93;
bool isGoodStudent = (score1 > 85 && score2 > 85) ? true : false;