C++ 구문

NYH·2023년 10월 31일

C++

목록 보기
3/17

목차

  1. if/else 구문
  2. switch 구문
  3. define
  4. 반복문
  5. 문제 풀이


1. if /else 구문

if / else 구문

expression이 참인 경우에만 statement1이 실행됩니다.
거짓인 경우 statement 2가 실행됩니다.

if (expression)
{
	// statement1
}
else 
{
	// statement2
}

if / else if 구문

expression1이 참인경우 statement 1 실행
expression1이 거짓이고 expression2가 참인 경우 statement 2 실행
expression1,2가 거짓이고 expression3이 참인 경우 statement 3 실행.

if (expression1)
{
	// statement1
}
else if (expression2)
{
	// statement2
}
else if (expression3)
{
	// statement3
}

if / else if / else구문

expression1이 참인경우 statement 1 실행됩니다.
expression1이 거짓이고 expression2가 참인 경우 statement 2 실행됩니다.
expression1,2가 거짓인 경우 statement 3 실행됩니다.

if (expression1)
{
	// statement1
}
else if (expression2)
{
	// statement2
}
else
{
	// statement3
}


2. switch 구문

일반적인 switch case 구문

switch(data1):
	case(data2):
    	//statement1
        break;
    case(data3):
    	// statement2
        break;
    default:
    	// statement3
        break;
    ...

data1과 case의 data가 동일할 경우 해당 case가 실행됩니다.
case에 모두 해당되지 않을 경우 default가 실행됩니다.

사용 주의점

switch(data1):
	case(data2):
    	// statement
    case(data3):
    	// statement
        break;

다음 예시에서는 data2가 data1과 같더라도 break 문이 없기 때문에 data2에 해당하는 case만 실행되는 것이 아니라 data3에 해당하는 case도 실행된다. => 다음 break문이 나올 떄까지 실행됩니다.
의도적으로 사용한 것이 아니라면 프로그래머의 의도와 맞지 않는 에러를 발생 시킬 수 있기 때문에 주의해야합니다.


3. define

구성 형식

#define identifier replacement
  • identifier : 매크로에 부여되는 이름 식별자입니다.
  • replacement : 코드에서 식별자에 해당하는 부분을 교체하는 텍스트입니다.

유의점

매크로는 전처리기에 의해 처리되며 순전히 텍스트 대체입니다.
교체되는 부분은 C++의 코드 유형검사나 범위 규칙이 적용되지 않습니다.
문제 발생을 방지하기 위해 C++에서는 const, 인라인 함수등 다른 대체제가 존재합니다.


4. 반복문

특정한 조건상에서 반복이 수행되는 구문을 반복문이라고 합니다.

for문

for (1.반복자 초기화; 2.반복자 조건감별; 3.반복자 변경)
{
	// statement
}

for 문의 형식입니다.
첫번째 반복자 초기화는 한번만 일어납니다.
두번째 반복자 조건감별은 중괄호 내의 구문이 한번 수행된 뒤 조건 감별을 수행합니다.
세번째 반복자 변경은 반복자 조건감별이 참이면 수행됩니다.

while문

while(조건)
{
	// statement
}

while문의 형식입니다.
조건이 참이라면 while문은 중괄호 내의 구문을 수행합니다.
구문을 수행한 뒤 while문은 조건을 다시 확인하고 참이면 다시 수행, 참이 아니라면 멈춥니다.

continue

for (1.반복자 초기화; 2.반복자 조건감별; 3.반복자 변경)
{
	// statement1

    continue;
    
    // statement2
}

while (조건감별)
{
	// statement1
	
    continue;
    
    // statement2
}

continue 구문이 수행되면 반복문 내에서 continue 아래의 구문이 무시됩니다.
그리고 for문의 경우는 반복자 조건감별 조건으로 이동합니다.
while문의 경우는 조건감별 조건으로 이동합니다.

break

for (1.반복자 초기화; 2.반복자 조건감별; 3.반복자 변경)
{
	// statement1
    
    break;
    
    // statement2
}


while(조건감별)
{
	// statement1
    
    break;
    
    // statement2

}

break 구문이 수행되면 반복문을 탈출합니다.
break 구문이 수행되면 그 아래의 구문은 무시되고 반복문을 탈출합니다.


5. 문제 풀이

문제 1.

answer의 값은?

int main(){
  int x = 10;
  int bit = 8;
  int answer = 0;

  if (x & bit)
  {
      answer++;
  }
  else if (x | bit)
  {
      answer++;
  }
  else
  {
      answer++;
  }
}

문제 2.

answer의 값은?

int main()
{
  int x = 2;
  int bit = 2;
  int answer = 3;


  switch(bit):
      case(x):
          answer++;
      case(4):
          answer++;
      case(5):
          answer++;
      default:
          answer--;
          break;
}

문제 3.

answer의 값은?

#define P 10 / 2

int main()
{
	int answer = 20 / P;
}

문제 4.

answer의 값은?

int main()
{
	int answer = 0;
    
    for (int i = 0; i < 5; ++i)
    {
    	for (int j = 0; j < 5; ++j)
    	{
    		it (j % 2 == 0)
            {
            	continue;
            }
            answer += j;
    	}
    }
}
profile
그냥 해라

0개의 댓글