🤔 분기문이란?
- 원하는 조건에 따라 코드를 실행할지 하지 않을지 정할 수 있는 문법이다.
📚 분기분 3가지 종류와 특징
go to : 여러 문제가 발생할 수 있어 암묵적으로 사용하지 말아야 하는 문법이다.
- 이유는 스파게티 코드가 되기 때문인데, 레이블(라벨)이 붙어진 곳까지 바로 넘어가는 기능이 여러 번 사용된다면 유지보수가 힘들어지기 때문이다.
goto skip; // 라벨이름을 skip으로 설정
std::cout << "안녕";
skip: // skip을 정의해 흐름을 변경
std::cout << "하세유";
// 출력 결과 "하세유"
if : 분기문도 맞지만 조건문으로 많이 불림.
- 조건이 참일 경우 실행되는 문법
- 중괄호 안에서 변수를 선언 시 메모리의 영역이 달라진다.
if (조건식)
{
// 실행될 코드
}
else if (조건식 유형에 맞는 다른 조건식)
{
// 실행될 코드
}
else // 모든 조건이 거짓일 경우 실행
{
// 실행될 코드
}
switch : 조건을 정수로만 받아 분기점을 찾아 코드를 실행.
- 상수 조건 분기문.
- 조건식의 위치에 정수만 취급함.
- [break] - 현재 코드의 흐름을 벗어나도록 만드는 키워드.
int iNum(10);
switch (iNum)
{
case 10:
// 실행할 코드 내용
break;
case 20:
{
// 중괄호를 넣어주면 case문안에서도 변수 선언이 가능함.
int iTest(0);
}
break;
defalut:
// 조건에 맞는 분기점에 해당하는 곳이 없을 때 이동
break;
}
- switch문 안에서 변수선언이 가능한가?
- 가능하다. 일반적으로 사용할 땐 불가능 하지만 중괄호로 단을 나누어 메모리 영역을 나누어 주면 가능하다.
- 일반적인 영역(중괄호)이 없는 case문 안에 넣으면 ['i' 초기화가 'case' 레이블에 의해 생략되었습니다.] 에러로 실행되지 않는다.
🤔 무한루프란
- 루프를 멈춰줄 분기점이 없어서 무한으로 멈춰줄 분기점을 찾는다. 이때 프로그램 멈춰줄 분기점을 찾을 동안 멈춰있게 된다. - ex. 프로그램이 멈춰 작업 관리자로 강제종료 하는 경우
🎳 삼항 연산자
- 말 그대로 세개의 항을 가진 연산자. 가독성이 좋지 않다는 말도 있다.
- 간단한 비교 후 대입할 때 유용하게 쓰인다.
Before
int iNum(0);
bool bTemp(false);
if (bTemp)
{
iNum = 10;
}
else
{
iNum = 20;
}
After
bool bTemp(false);
int iNum = bTemp ? 10 : 20;
'컴퓨터 구조 > C, C++' 카테고리의 다른 글
다중 포인터란 (0) | 2024.08.16 |
---|---|
구조체 크기 계산법 및 최적화 (0) | 2024.08.12 |
const와 포인터 (0) | 2024.08.09 |
[C/C++]포인터 기초 (0) | 2024.08.04 |
[C/C++] 함수란 (0) | 2024.07.31 |