switch case while

2024. 7. 19. 12:22정보처리,전산/Clang

반응형
#include <stdio.h>

int main (int argc, char *argv[]){
  int a = 5;
  int s = 0;
  int sum = 0;
  int product = 1;

  while (a < 15){
    a++;
    if(a % 3 == 0) continue; // a가 3의 배수일 경우 이번 반복을 건너뜀
    sum += a; // 3의 배수가 아닐 때 sum에 a를 더함
    if(a % 2 == 0) product *= a; // a가 짝수일 경우 product에 a를 곱함
  }

  switch(a % 5) {
    case 0: s += 2; break; // a를 5로 나눈 나머지가 0이면 s에 2를 더함
    case 1: s += 3; break; // a를 5로 나눈 나머지가 1이면 s에 3을 더함
    case 2: a -= 1; break; // a를 5로 나눈 나머지가 2이면 a를 1 감소시킴
    case 3: a += s; break; // a를 5로 나눈 나머지가 3이면 a에 s를 더함
    default: a++; // 그 외의 경우 a를 1 증가시킴
  }

  printf("%d %d %d %d", s, a, sum, product); // s, a, sum, product의 값을 출력
  return 0;
}

 

 

 

 변수 변화
- a = 6 -> a % 3 == 0, continue
- a = 7 -> sum += 7 (sum = 7), a % 2 != 0
- a = 8 -> sum += 8 (sum = 15), product *= 8 (product = 8)
- a = 9 -> a % 3 == 0, continue
- a = 10 -> sum += 10 (sum = 25), product *= 10 (product = 80)
- a = 11 -> sum += 11 (sum = 36), a % 2 != 0
- a = 12 -> a % 3 == 0, continue
- a = 13 -> sum += 13 (sum = 49), a % 2 != 0
- a = 14 -> sum += 14 (sum = 63), product *= 14 (product = 1120)
- a = 15 -> 루프 종료

그 이후 switch 문에 의해 s는 2 증가한다.

반응형

'정보처리,전산 > Clang' 카테고리의 다른 글

변수의 범위(scope)  (0) 2024.07.26
포인터 배열 , 배열 포인터  (1) 2024.07.24
구조체 포인터 : 도서관 도서 목록  (0) 2024.07.19
소수구하기  (0) 2024.07.18
구조체 값 입력 받기  (0) 2024.07.18