C - 조건문
구조적 프로그래밍 기법 4가지 요소
- 순서 : 실행문은 위에서 아래로 차례로 실행된다
- 판단 : 프로그램의 흐름으 바꿀 수 있도록 한다.
- 반복 : 반복되는 명령어를 갖고 있어야 한다.
- 프로시저 : 독립된 함수를 만들 수 있고, 이를 호출할 수 있어야한다.
if 문의 구조
#ionclude <stio.h>
main() {
if (/*조건*/) {
// 조건 만족 시 실행되는 명령
}
}
조건
에 들어갈 값이 거짓이라고 판단하면(정수형 데이터 0) { }
안의 문장은 실행되지 않고,
조건을 만족하는 값이 참이라고 판단하면 { }
안의 문장이 실행된다.
숫자 데이터 타입이 들어올 경우, 0인 경우를 제외하고 모두 참으로 판단하고
{ }
안의 문장을 실행한다.
#ionclude <stdio.h>
main(0) {
if (/*조건*/) {
}
}
관계 연산자
#include <stdio.h>
main() {
int k=7,g;
g = (k>5); /* k 가 5보다 큰가?*/ printf("%d\n",g);
g = (k<5); /* k 가 5보다 작은가?*/ printf("%d\n",g);
g = (k>=5); /* k 가 5보다 크거나 같은가?*/ printf("%d\n",g);
g = (k<=5); /* k 가 5보다 작거나 같은가?*/ printf("%d\n",g);
g = (k==5); /* k 가 5와 같은가?*/ printf("%d\n",g);
g = (k!=5); /* k 가 5와 같지않은가?*/ printf("%d\n",g);
}
논리 연산자
|기호|의미|문제 예|조건식 기술방법| |—|—|—|—| |&&|AND(두 조건을 모두 만족)|20보다 같거나 크고 30보다 작은가?|ss>=20 && ss<30| ||||OR(하나의 조건이라도 만족)|20보다 작거나 30보다 큰가?|ss<20 || ss>30| |!|NOT(부정)|20보다 작지 않은가?|!(ss<20)|
연산 우선순위
연산 우선순위를 잘 외우겠으면 괄호를 이용해 원하는대로 강제로 우선순위를 처리한다..!
예제 문제
다음의 요구조건을 만족하는 프로그램을 작성하시오.
. 외부로부터 값을 하나 읽어 k 라는 기억공간에 저장한다.
. 이값이 100 보다 크면, k 에 30 을 더한 후, 이를 g에 저장하고, 이 g 값을 출력하고,
. 그렇지 않으면, k 에 20 을 더한 후, 이를 g에 저장하고 이 g 값을 출력한다.
. 위 과정이 끝나면, bye! 라고 출력하고 프로그램이 끝난다.
#include <stdio.h>
main() {
int g = 0;
int k;
scanf("%d", &k);
if ( k > 100)
{
g = k + 30;
}
else {
g = k + 20;
}
printf("g = %d", g);
}
시험 예상문제
- 2차 방정식에서 두 근의 해를 구하기
두 근이 실수일 경우 (D>0)
두 근이 허수일 경우 (D<0)
```cpp
#include
#include // 아래의 sqrt() 함수를 이용하려면 꼭 넣어야 합니다. main() { float a,b,c,D,x1,x2; printf("value="); scanf("%f %f %f",&a,&b,&c); D=b*b-4*a*c; x1 = (-b+sqrt(D))/(2*a); x2 = (-b-sqrt(D))/(2*a); if(D>=0) { printf("real value : "); printf("%7.1f, %7.1f\n", x1, x2); } else { printf("image value : "); D=-D; printf("%4.1f+%4.1fi, %4.1f-%4.1fi\n", x1,x2); } }
# switch case 문
## switch case 문 구조와 동작 과정
```cpp
switch(판단할 값) {
case A:
break;
case B:
break;
case C:
break;
default:
break;
}
case A/B/C 판단할 값 = A/B/C 라면 case A/B/C 아래부터 break를 만날 때 까지의 명령을 실행한 뒤 switch case 문을 빠져나온다. 판단할 값은 정수형 또는 문자만 가능하다.
##
댓글남기기