기본 형식:
if (condition)
statement;
next;
//condition이 만족되면 아래 코드가 실행이 된다
예시:
if (grade >= 3.2)
{
printf("회사에 지원할 수 없습니다.");
}
printf("졸업을 축하합니다.");
if else 문
기본 형식:
if (condition)
statement;
else
statement;
next;
예시:
if (n % 2 == 0)
printf("짝수");
else
printf("홀수");
printf("입니다.");
if.. else if 문
if (condition 1)
statement1;
else if (condition 2)
statement2;
else if (condition 3)
statement3;
else
statement4;
next;
블록 표시와 else
잘못된 예시 1:
int age = 30;
if (age>=20)
if (age>=65)
printf("당신은 어르신입니다.\n");
else
printf("당신은 미성년자입니다.");
잘못된 예시 2:
int age = 30;
if (age>=20)
{
if (age>=65)
printf("당신은 어르신입니다.\n");
else
printf("당신은 미성년자입니다.");
}
올바른 예시:
int age = 30;
if (age>=20)
{
if (age>=65)
printf("당신은 어르신입니다.\n");
}
else
printf("당신은 미성년자입니다.");
}
다양한 if문
if (temperature >= 32)
printf("폭염주의");
//
if (40<=speed && speed <= 60)
printf("적정속도");
//
if (point >= 60)
printf("면허시험 합격");
else
printf("면허시험 불합격");
*주의해야 할 조건 연산식
( 40 <= speed <= 60 )
//위 연산식은 우선순위에 따라 아래 연산식과 같음
( (40<=speed) <= 60)
//(40<=speed)이 먼저 계산되며, 해당 연산의 결과는 0(거짓)또는 1(참)임을 주의
if와 조건연산자
두 수의 최대값 구하기
//조건 연산자:
max = x > y ? x : y;
//if:
if (x>y)
max=x;
else
max=y;
두 수의 최소값 구하기
//조건 연산자:
min = x > y ? y : x;
//if:
if (x>y)
min=y;
else
min=x;
절대값 구하기
//조건 연산자:
abs = x >= 0 ? x:-x;
//if:
if (x>=0)
abs= x;
else
abs= -x;
홀수와 짝수 구하기
//조건 연산자:
a % 2 ? printf("홀수") : printf("짝수");
//if:
if (a%2) //a와 2를 나눈 나머지를 계산. a가 짝수면 0이 대입되는 연산이 false로 처리돼서 다음 조건문으로 넘어감.
printf("홀수");
else
printf("짝수");
기본 형식:
switch(exp){ //식의 결과는 문자형 또는 정수형이어야 한다!
case 상수1: //정수 또는 문자형의 상수이어야 한다.
stmt1;
break; //break을 만나면 switch문이 종료된다.
case 상수12:
stmt2;
break;
case 상수3:
stmt3;
break;
default: //위의 case값이 일치하지 않으면 끝에 default문을 실행시킨다.
stmt4;
break;
}
switch(exp)에서 exp는 반드시 문자형 또는 정수형이어야 한다.
switch( exp ==1 .1 ) 불가능
break 생략 예제:
int month;
printf("년도의 월(month)을 입력: ");
scanf("%d", &month);
switch(month){
case 4: case 5:
printf("%월은 봄입니다.\n", month);
break;
case 6: case 7: case 8:
printf("%월은 여름입니다.\n", month);
case 9: case 10: case 11:
printf("%월은 가을입니다.\n", month);
case 12: case 1: case 2: case 3:
printf("%d월은 겨울입니다.", month);
default:
printf("잘못 입력");
}
위 예제와 같이 case 를 묶기 가능
세 정수의 최대값 출력 예제:
int x,y,z;
printf("세 정수를 입력: ");
scanf("%d %d %d", &x, &y, &z);
switch((x>y)){ //x>y가 참이면 1, 거짓이면 0
case 0:
printf("최대 값: %d\n", y>z?y:z); //y>z가 참이면 y출력, 아니면 z출력
break;
case 1:
printf("최대 값: %d\n", x>z?x:z);
break;
}
성적 처리 switch문 예제:
int score;
printf("점수 입력: ");
scanf("%d", &score);
switch(score/10){
case 10: case 9:
printf("점수: %d, 성적: %c", score, 'A');
break;
case 8:
printf("점수: %d, 성적: %c", score, 'B');
break;
case 7:
printf("점수: %d, 성적: %c", score, 'C');
break;
case 6:
printf("점수: %d, 성적: %c", score, 'D');
break;
default:
printf("점수: %d, 성적: %c", score, 'F'); //default문에서는 break 생략 가능
}
break문은 사실 위치 제한도 없고 생략도 가능하다. 다만 가장 아래가 아닌 가장 위에 작성하게 되면 break문이 필요하게 된다.