C언어 문법 공부 - 3
본격적인 프로그램다운 프로그램을 만들기 위해서는 조건문은 필수로 알아야 합니다.
지금 공부하는 C언어 문법공부의 목적이 문제풀기이긴 하지만,
C언어 문제로 나오는 대부분이 조건문, 반복문, 함수 부분에서 문제가 나옵니다.
어떻게 출력되는지 이해하고 알아놓는게 좋을 것 같습니다.
C언어의 조건문에서는 헷갈리는 부분이 많으니,
잘 알아두셔야 뒤에 반복문과 함수에서도 헷갈리지 않을 수 있습니다.
조건문
조건을 지정하는 조건식이 필수적으로 들어가며,
조건식이 참일 때는 1, 거짓일 때는 0을 반환합니다.
다른 숫자들도 0만 아니면 참으로 인식합니다.
즉, 2도 참이고, 100도 참입니다.
0만 아니면 참으로 인식합니다.
*두 변수나 상수를 비교하는 조건식
'>' 결과값을 나타내기 위해 사용한 기호입니다.
int a = 1, b = 10
a == b
> 0(false) : 'a와 b가 같다'는 조건식입니다.
* a = b의 경우에는 조건식이 아니라 변수 a의 값을 변수 b의 값으로 바꾼다는 뜻입니다.
a != b
> 1(true) : 'a와 b는 다르다'는 조건식입니다.
a > b
> 0(false) : a가 b보다 크다
a < b
> 1(true) : a가 b보다 작다
a >= b
> 0(false) : a가 b보다 크거나 같다
a <= b
> 1(true) : a가 b보다 작거나 같다
*조건식이 두개 이상일 때, 하나로 연결시켜주는 연산자들이 있습니다.
이런 형태는 C언어 문제에서 자주 나오니 꼭 기억해두시길 바랍니다.
int a = 0, b = 1;
a == b && a <= b
> {0, 1} → 0
&&은 연산자 'and'를 의미합니다. 조건식 여러개 중 하나라도 거짓이라면 0으로 반환하고, 모두 참이어야 1을 반환합니다.
a == b || a <= b
> {0, 1} → 1
||은 'or'을 의미하고, 조건식 여러개 중 하나라도 참이면 1로 반환하고, 모두 거짓인 경우에만 0을 반환합니다.
!a == b
> 0 → 1
!는 연산자 'not'을 의미합니다.
조건식이 참이면 거짓으로 바뀌고, 거짓이라면 참으로 바뀌는 연산자입니다.
반대로 출력한다고 생각하면 쉽습니다.
조건 연산자
조건식이 참이면 ':'의 왼쪽 값이 반환되고, 거짓이면 오른쪽의 값이 반환됩니다.
위의 조건 연산자의 구조를 살펴보면
printf( "정수형 변환문자", 조건식 ? 조건연산자 )
로 구성되어 있습니다.
조건 연산자는 ':' 를 사용해
(참일 경우 반환 값) : (거짓일 경우 반환 값) 표현합니다.
위의 코드상에서는 참일 경우 1을 반환하고, 거짓일 경우 0을 반환합니다.
if문
if는 '만약'이라는 뜻을 가진 영어단어입니다.
그 뜻 처럼 if문은 경우에 따라 다르게 작동하는 문법입니다.
if문은 if(조건식)의 형태로 표현합니다.
만약 참이라면 중괄호({})안의 코드를 수행하고,
거짓이라면 다음으로 넘어갑니다.
else if와 else는 if문의 다른 부분들입니다.
else = 아니라면
else는 if문의 조건식이 거짓이라면 수행하게 됩니다.
else if() = 조건식 하나더 쓸 수 있음
if, else if, else문은 이 세개가 동시에 쓰일때, 무조건 하나만 쓰이게 됩니다.
두개, 세개가 중복으로 실행되도록 하고 싶다면 else if가 아니라 if를 쓰셔야 합니다.
Switch - Case
정렬 조건문으로 편리성을 위해 만들어진 것입니다.
위의 코드를 switch-case를 이용해 간단하게 작성할 수 있습니다.
case n: 은 '만약 a가 n일 때'와 같은 의미가 됩니다.
단 case문은 switch문 안 중괄호의 들여쓰기를 무시합니다.
break는 마찬가지로 switch문에서 나간다는 뜻이 됩니다.
default는 위에 case문에 있는 수들이 모두 아니라면 실행되는 코드입니다.
if, else if, else 문으로 써도 되지만, 대신 쓸 수 있는 함수입니다.
'공부 및 교육 > IT용어& 활동' 카테고리의 다른 글
브랜드 블로그? 브랜드 블로그 목적과 포스팅 작성하는 방법 (0) | 2023.07.15 |
---|---|
C언어 문법 공부 - 2 (0) | 2023.04.25 |
C언어 문법 공부 - 1 (0) | 2023.04.24 |
SQL 문법 정리 - DML, DDL, DCL,TCL, QUERY, 연산자 (0) | 2023.03.18 |
데이터 라벨링 작업 후기(세그멘테이션, 3D바운딩, 2D 바운딩, 3D 모델링 등) (0) | 2023.02.20 |
댓글