제어문 중에서 흐름을 두 갈래 중 하나를 선택하는 문장을 선택문이라 하고 , if 문이 대표적인 선택 문이다.
우리가 생활하는 일상 생활에서도 선택을 하는 경우가 흔히 나타난다.
머리가 맑으면 공부를 하고 아니면 논다.
머리가 맑다... 이 부분을 조건식이라 하고 조건식은 참 혹은 거짓인 상태로 나타난다. 즉 조건식이 참이면 공부를 한다,아니면 논다.
if ( 머리가 맑다 ) { 공부를 한다 }else { 논다 }
참인 경우 한 문장 s2 를 아니면 두 문장 s3,s4 를 수행.
if ( 머리가 맑다 ) { 공부를 한다; }else if ( 비가 온다 ) { tv 시청을 한다; }else { 농구를 한다; }여러개의 else if 와도 관계가 없다.
( 조건식 )
#include <stdio.h> int main() { int n; scanf("%d",&n); if ( n % 3 == 0 || n % 7 == 0 ) { printf("yes"); }else { printf("no"); } }(샘플 예제 II) 두 수를 a , b 를 입력으로 받아 a 가 b 보다 크면 두 수를 교환하는 프로그램. 즉 항상 두 수 중 큰 수를 b 로 유지.
#include <stdio.h> int main() { int a,b; int t; scanf("%d %d",&a,&b); if ( a > b ) { t = a; a = b; b = t; } printf("%d %d\n",a,b); }
산술 연산자 | 관계 연산자 | 논리 연산자 |
---|---|---|
* (곱) | >(크다) | !(아니면 즉 not ) |
/ (나누기) | >=(크거나 같다) | &&(이고 즉 and ) |
% (나머지) | <(작다) | ||(이거나 즉 or ) |
+ (더하기) | <=(작거나 같다) | |
- (빼기) | ==(같다) | |
!=( 같지 않다) |
숫자 0 이면 거짓으로 1 이면 참을 의미한다. 정확하게 이야기 하면 0 이외의 수는 모두 참으로 인식하고 시스템에서는 참은 1 을 돌려 준다.
몇가지 예를 들어보면
논리 연산자는 단락(short circuit)성질이 있다.
아래 보기를 실행해보면 이해할 수 있다.( makecode 님 답변해 주신 소스입니다)
#include <stdio.h> int main() { int a = 3; a > 1 && printf("1번\n"); a < 1 && printf("2번\n"); a > 1 || printf("3번\n"); a < 1 || printf("4번\n"); return 0; }
#include <stdio.h>
int main()
{
int num;
scanf("%d",&num);
if ( num < 0);
num = -num;
printf("%d\n",num);
}
* 아래 코드를 실행 결과 눈 퓨터로 예상한 후 컴퓨터로 실행해서 결과가 맞는지 확인해보세요.
#include <stdio.h> int main() { int a; a = 0; if ( a = 0 ) { printf("true\n"); }else { printf("false\n"); } }