C언어 기초이론 (조건문)
조건문이란?
조건을 만족할 때만 코드를 실행하는 실행으로써 특정상황에 반응하게 하는 유기적인 코드를 짤 때 유용함
-조건식의 결과값은 true나 false 둘중 하나여야함
-조건식에는 대부분 비교연산자와 논리연산자가 주로 쓰임
1) if 조건문
-if문은 특정조건을 만족할 때 해당코드를 실행시키는 조건문이다
**if문 사용방법**
if ( 실행 조건 ){
(조건을 만족할 때 실행시킬 내용)
}
**if문 주의사항**
-if문은 if만을 계속해서 나열하여 사용할 수 있지만, if문에 이용된 모든 조건들을 다 읽게되기에 많은 비효율이 발생하게 됨
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
int num;
printf("정수를 입력해주세요: ");
scanf("%d", &num);
printf("\n");
if(num < 0)
printf("입력하신 수 자가 양다 적습니다. \n");
if(num == 0)
printf("수 자 0을 입력하셨습니다. \n");
if(num > 0)
printf("입력하신 수 자가 양다 큽니다. \n");
return 0;
}
ex) if문만 사용하게 되면 (num<0)조건과 (num==0)조건, (num>0)조건들을 모두 읽게됨
2) if~else 조건문
-if~else문은 특정조건을 만족할 때 해당코드를 실행시키고, 만족하지 않을 때 else구문의 내용으로 넘어가는 구조이다.
**if~else문 사용방법**
if ( 실행 조건 ){
(조건을 만족할 때 실행시킬 내용)
} else {
(if문에 걸었던 조건을 만족하지 않을 때 실행시킬 내용)
}
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
int num;
double num1, num2;
double result = 0;
printf("두 수를 입력하세요: ");
scanf("%lf %lf", &num1, &num2);
printf("%lf %lf", num1, num2);
printf("\n");
printf("계산하고싶은 사칙연산의 번호를 입력하세요: \n");
printf("1. 덧셈 2. 뺄셈 3.곱셈 4.나눗셈 \n");
scanf("%d", &num);
printf("\n");
if(num == 1) {
result = num1 + num2;
} else if (num == 2) {
result = num1 - num2;
} else if (num == 3) {
result = num1 * num2;
} else {
result = num1 / num2;
}
printf("사칙연산 결과: %lf", result);
return 0;
}
**if~else문 주의사항**
-if~else구문을 사용할 때 if구문에서 조건식이 이미 성립했다면 else구문으로 넘어가지 않고 조건문을 탈출
3) if~else if~else 조건문
if~else if~else문은 if~else문을 단순히 중첩하여 쓴 조건문임
4) 삼항 연산자 조건문
피 연산자 3개를 늘여틀어놓는 구조의 조건문이기에 삼항연산자라 부름
**삼항연산자 사용방법**
(num1 > num2) ? (num1) : (num2);
(실행 조건) ? (참이면 실행) : (거짓이면 실행);
5) switch 조건문
실행조건을 거는 것 대신 case로 상황들을 나눠 선택한 상황에 맞는 case를 선택해 해당하는 값을 출력하는 구조
-조건식 이 한가지로 간결하며, 많은 경우의 수를 다룰 수 있기에 경우의 수가 많을 때 활용하면 유용함
-조건식을 먼저 계산한 후, 조건식의 결과와 일치하는 cas문으로 이동하는 구조임
-break나 끝을 만나면 switch문을 빠져나감
-case문의 값은 사수만 가능하며, 중복되면 안됨
-switch 조건문의 결과는 정수나 문자열이여야함
**if~else문 사용방법**
switch ( 번호 ){
case 1:
(case1에 대해 실행시킬 내용)
break;
case 2:
(case2에 대해 실행시킬 내용)
break;
case 3:
(case3에 대해 실행시킬 내용)
break;
}
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
int num;
printf("1에서 5까지의 정수를 입력하세요: ");
scanf("%d", &num);
printf("\n");
switch (num) {
case 1:
printf("1은 one \n");
break;
case 2:
printf("2는 two \n");
break;
case 3:
printf("3은 three \n");
break;
case 4:
printf("4는 four \n");
break;
case 5:
printf("5는 five \n");
break;
default:
printf("잘못된 입력입니다.\n");
break;
}
return 0;
}
**switch문 주의사항**
-case별로 실행할 때 각각break를 안걸어주면 실행 후 switch문을 탈출하지않고 순서대로 아랫부분 case까지 읽어 밑에 결과들도 같이 실행되기 때문에 case별로 끝에
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
int num;
printf("1에서 5까지의 정수를 입력하세요: ");
scanf("%d", &num);
printf("\n");
switch (num) {
case 1:
printf("1은 one \n");
break;
case 2:
printf("2는 two \n");
break;
case 3:
printf("3은 three \n");
break;
case 4:
printf("4는 four \n");
break;
case 5:
printf("5는 five \n");
break;
default:
printf("잘못된 입력입니다.\n");
break;
}
return 0;
}
break를 걸어줘야함