2018년 9월 11일 화요일

C, switch, case 문에서 || 연산자

백준 11723 집합 문제를 풀다가
swtich case문을 사용하면서 ||(or)연산자를 사용했는데

아래와 같이...
case 'a' || 'b':
내가 의도한 바는 'a' 또는 'b'인 경우에 그 케이스 문 안의 코드를 실행하는 것이었는데, 'a'가 오든 'b'가 오든 해당 case문 안으로 들어가지 않길래 찾아봤더니...

https://stackoverflow.com/questions/13226124/switch-case-with-logical-operator-in-c

저 경우에는 'a' || 'b'가 계산이 되어 True(1) 값으로 설정되기 때문에, 즉 case 1: 이 되기 때문에 'a', 'b'값 모두 통과를 할 수 없게 되는 것 같다.

----
아 그리고, switch문 안에서 case를 벗어난 부분에 코드를 입력하면 내려가면서 실행될 줄 알았는데 그렇지 않다... case문 밖에 있는 코드는 실행되지 않는다.
swtich(x) {
  case 1:
    ......
    break;

  (x가 1이 아닌 경우에도 이 부분에 입력된 코드는 실행되지 않음)

  case 2:
    .......
    break;
}

댓글 없음:

댓글 쓰기