2023 c++

23년 C++ chap4 조건문 -> 관계,일치표현식 / if조건문 / if-else조건문

gy8879 2023. 7. 18. 00:34

01 조건문의 개요

1 관계 표현식과 일치 표현식

그룹 연산자 우선순위(숫자 클수록 우선) 결합방향
관계표현식 <
<=
>
>=
11
일치표현식 ==
!=
12

-관계표현식: 두 값의 크기 비교(4가지)

 일치표현식: 두 값이 동일한지 판별(2가지)

 

-두 표현식의 자료형이 다르면 자료형 변환이 일어난다

ex) 3 > false // false가 0으로 변환된 뒤 연산, 결과는 true

      3 != false // 마찬가지로 결과는 true

 

-우선순위와 결합순서

ㄴ관계표현식이

1 == 3 < 4 // 1 == (3 < 4) -> 1 == true -> 1 == 1이므로 true

*자주 쓰는 표현식 우선순위*

곱셈나눗셈(*, /, %) > 덧셈뺄셈(+,-) > 관계연산(>, >=, <, <=) > 일치연산(==, !=)

 

-부동소수점 값에는 일치연산자를 사용하지 않는 것이 안전

 

2 if 조건문(단방향 조건 분기) 주의사항

-일치연산자가 아닌 할당연산자 사용

if(x=0){ // 조건표현식이 무조건 false
	문장; // 절대 실행되지 않음
}

-괄호 생략

if(x==0)
	문장1; // x==0이라면 문장1 실행
	문장2; // 문장2는 항상 실행

-불필요한 세미콜론

if(x==0);{ // 세미콜론으로 인해 if 조건문의 본문이 널 문장으로 인식됨
	문장1; // 따라서 문장1은 항상 실행
	문장2; // 문장2도 항상 실행
}

 

3 if-else 조건문(양방향 조건 분기)

-중첩 if-else 조건문 -> 복합 구문을 사용해 명확하게 짝을 맞춰야 함

-잘못된 코드 예시

의도한 실행 흐름도

if(표현식1)
	if(표현식2)
		문장1
	else
		문장2

-> 흐름도의 의도와 다른 코드가 됨

 

-else if로 들여쓰기 없이 간단한 형태를 만들 수 있다