컴퓨터 구조/C, C++

[C/C++] 분기문

JiHxxn 2024. 7. 24. 11:54

🤔 분기문이란?

  • 원하는 조건에 따라 코드를 실행할지 하지 않을지 정할 수 있는 문법이다.

📚 분기분 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