조건 (프로그래밍)
조건(條件)은 프로그래밍에서 참인지 거짓인지 판단하고 과정이 맞으면 그것에 맞게 수행하는 것이다.
목차
개요
조건은 컴퓨터과학에서 프로그래머가 명시한 불린 자료형 조건이 참인지 거짓인지에 따라 달라지는 계산이나 상황을 수행하는 프로그래밍 언어의 특징이다. 조건에 따라 둘 또는 그 이상의 실행 경로 중에서 하나를 선택할 수 있는 수단을 제공한다.[1][2]
C언어
설정한 조건식에 따라서 실행될 코드 블록과 실행되지 않을 블록을 설정할 수 있다. 조건의 종류는 주로 if, if else, if else if, switch가 있다.[3]
if
조건식이 참인 경우에만 사용하는 대표 조건이며 형태와 의미는 다음과 같다.
- 형태
if (조건) {A}
- 의미
(조건) = 참이면 {A} 실행, (조건) = 거짓이면 if문 탈출
- 예시1
#include<stdio.h> void main() { int x = 1; int y = 2; if (x < y) { printf("x가 y보다 작습니다. \n"); //if문 내부 실행문 } printf("종료 \n"); //if문 외부 실행문 } 결과 x가 y보다 작습니다. 종료
- 예시2
#include<stdio.h> void main() { int x = 3; int y = 2; if (x < y) { printf("x가 y보다 작습니다. \n"); //if문 내부 실행문 } printf("종료 \n"); //if문 외부 실행문 } 결과 종료[3]
if else
if else는 2가지의 조건식을 쓸 때 가정이 참이면 참인 가정을 실행하고 아니면 거짓 가정을 실행하게 하는 것으로 사용하는 것으로, 형식은 다음과 같다.
- 형태
if (조건) {A} else {B}
- 의미
(조건) = 참이면 {A} 실행, (조건) = 거짓이면 {B} 실행
- 예시1
#include<stdio.h> void main() { int x = 1; int y = 2; if (x < y) { printf("x가 y보다 작습니다. \n"); //if문 내부 실행문 } else { printf("x가 더 크거나 같습니다. \n"); //else문 내부 실행문 } printf("종료 \n"); //if문, else문과 무관하게 실행 } 결과 x가 y보다 작습니다. 종료
- 예시
#include<stdio.h> void main() { int x = 3; int y = 2; if (x < y) { printf("x가 y보다 작습니다. \n"); //if문 내부 실행문 } else { printf("x가 y보다 크거나 같습니다. \n"); //else문 내부 실행문 } printf("종료 \n"); //if문, else문과 무관하게 실행 } 결과 x가 y보다 크거나 같습니다. 종료[3]
if else if
3가지 이상의 조건식일 때 사용한다.
- 형식
if (조건 a) {A} else if (조건 b) {B} else {C}
- 의미
(조건 a) = 참이면 {A} 실행, (조건 a) = 거짓 & (조건 b) = 참이면 {B} 실행, (조건 a) = 거짓 & (조건 b) = 거짓이면 {C} 실행 #include void main() { int x = 1; int y = 2; if (x < y) { printf("x가 y보다 작습니다. \n"); //if(조건식)이 참이면, 실행 } else if (x == y) { printf("x가 y와 같습니다. \n"); //if(조건식)이 거짓, else if(조건식)이 참이면, 실행 } else { printf("x가 y보다 큽니다. \n"); //if(조건식)이 거짓, else if(조건식)이 거짓이면, 실행 } printf("종료 \n"); //조건문 밖의 코드는 조건과 무관하게 실행 } 결과 x가 y보다 작습니다. 종료[3]
switch
switch문은 여러 경우의 수를 선택할 때 사용하고 case에 정수(int) 및 단일 문자(char) 자료형만 올 수 있다. 즉 case 뒤에는 변수명도 올 수 없다.
- 형식
switch (x) case (a) {A} default {C}
- 의미
x = a이면 {A} 실행, x != a이면, {C} 실행
- 예시1
#include<stdio.h> void main() { int x = 1; int y; switch (x) { case 0 : //x = 0 일 때 실행 { y = 33; //y = 33 대입 printf("y값은 %d \n", y); //y값 출력 } break; //switch문 밖으로 탈출 case 1 : //x != 0 이고, x = 1 일 때 실행 { y = 44; //y = 44 대입 printf("y값은 %d \n", y); //y값 출력 } break; //switch문 밖으로 탈출 default : //x != 0 이고, x != 1 일 때, 실행 { y = 99; // y = 99 대입 printf("y값은 %d \n", y); //y값 출력 } } printf ("종료"); //switch문 밖의 외부 코드는 switch문과 무관하게 실행 } 결과 y값은 44 종료
- 예시2
#include<stdio.h> void main() { int x = 99; int y; switch (x) { case 0 : //x = 0 일 때 실행 { y = 33; //y = 33 대입 printf("y값은 %d \n", y); //y값 출력 } break; //switch문 밖으로 탈출 case 1 : //x != 0 이고, x = 1 일 때 실행 { y = 44; //y = 44 대입 printf("y값은 %d \n", y); //y값 출력 } break; //switch문 밖으로 탈출 default : //x != 0 이고, x != 1 일 때, 실행 { y = 99; // y = 99 대입 printf("y값은 %d \n", y); //y값 출력 } } printf ("종료"); //switch문 밖의 외부 코드는 switch문과 무관하게 실행 } 결과 y값은 99 종료[3]
자바
자바도 C언어처럼 형태는 비슷하며 종류는 if, if else, if else if이다.[4]
if
조건식이 true이면 블록을 실행하고 false이면 실행하지 않는 조건을 통해 프로그램을 제어한다.
- 예시
public class practice { public static void main(String[] args) { int score = 85; if (score >= 90) { //score = 85이므로 score >= 90 조건은 false System.out.println("점수가 90보다 큽니다."); System.out.println("등급은 A 입니다."); } if (score < 90) { //score = 85이므로 score < 90 조건은 true System.out.println("점수가 90보다 작습니다."); System.out.println("등급은 B 입니다."); } } } 실행 결과 점수가 90보다 작습니다. 등급은 B 입니다.[4]
if else
if문의 조건식이 true이면 if문의 블록이 실행되고, 조건식이 false이면 else 블록이 실행된다.
- 예시
public class practice { public static void main(String[] args) { int score = 85; if (score >= 90) { System.out.println("점수가 90보다 큽니다."); System.out.println("등급은 A 입니다."); } else { // score<90일 경우 System.out.println("점수가 90보다 작습니다."); System.out.println("등급은 B 입니다."); } } } 실행 결과 점수가 90보다 작습니다. 등급은 B 입니다.[4]
if else
여러 개의 조건식을 사용해야 하는 경우 if else를 활용하여 false인 조건식들은 건너뛰고 true가 되는 블록만 실행한다.
- 예시
public class practice { public static void main(String[] args) { int score = 83; if (score >= 90) { System.out.println("점수가 100-90 입니다."); System.out.println("등급은 A 입니다."); } else if (score >= 80) { // 80 <= score <90 System.out.println("점수가 80-89 입니다."); System.out.println("등급은 B 입니다."); } else if (score >= 70) { // 70 <= score <80 System.out.println("점수가 70-79 입니다."); System.out.println("등급은 C 입니다."); } else { // 60 <= score <70 System.out.println("점수가 60-69 입니다."); System.out.println("등급은 D 입니다."); } } } 실행 결과 점수가 80-90 입니다. 등급은 B 입니다.[4]
파이썬
파이썬은 C언어, 자바와 다른 형태의 조건들이 나오며 대표적으로 if, elif 등이 있다. 비록 형태는 조금 다르지만 구동하는 방식은 거의 비슷하다.
if
C와 자바같이 작용한다.
- 예시1
>>> money = True >>> if money: ... print("택시를 타고 가라") ... else: ... print("걸어 가라") ... 택시를 타고 가라[5]
- 예사2
>>> money = 2000 >>> if money >= 3000: ... print("택시를 타고 가라") ... else: ... print("걸어가라") ... 걸어가라
elif
if와 else만으로는 다양한 조건을 판단하기 어려울 때 사용하는 것이며 다음과 같다.
- 예시
>>> pocket = ['paper', 'cellphone'] >>> card = True >>> if 'money' in pocket: ... print("택시를 타고가라") ... elif card: ... print("택시를 타고가라") ... else: ... print("걸어가라") ... 택시를 타고가라[5]
각주
참고자료
- 〈조건문〉, 《위키백과》
- 〈조건문〉, 《네이버 지식백과》
- 〈다중 프로그래밍 요구 조건〉, 《네이버 지식백과》
- 〈C언어 조건문 if, switch 간단한 예제 모음〉, 《다시마》
- Hyun-Taek Hong, 〈(Java 02) 자바 조건문 (if문, else문, if-else문)〉, 《깃허브》, 2020-08-16
- 〈점프 투 파이썬〉, 《위키독스》
같이 보기