2014-09-06 8 views
-1

내 프로그램은스위치 케이스에 여러 값을 사용하는 방법을

int main() { 
    int i = 10; 
    int j = 20; 
    switch (i++, j--) { 
     case 10: 
      printf("The number is 10"); 
      break; 
     case 20: 
      printf("The number is 20"); 
      break; 
     default: 
      printf("Input Invalid"); 
    } 
    return 0; 
} 

내가 출력 The number is 20을 얻고있다. 나는 그것이 어떻게 작동 하는지를 알 필요가있다. 감사.

+1

에 해당? – herohuyongtao

+0

[C에서 쉼표 연산자 \', \'는 무엇입니까?] 가능한 중복 (http://stackoverflow.com/questions/52550/what-does-the-comma-operator-do-in-c) –

답변

0

스위치 케이스를 부적절하게 사용하고 있습니다. 당신이 유일하게 하나 개의 숫자와 두 개의 인수, 그들과 함께 무엇을 해야할지하지 않는 컴파일러를주는 경우에 당신은 인수로 두 개의 변수,

switch(a++ , b--) 
{ 
    case(a>b): 
    case(b<a): 
    case(a==b): 
} 

을 받고 있습니다.

C 기반 언어를 사용하는 경우 이것은 제 경험입니다.

3

여기서 comma operator을 사용하고 있습니다. C 및 C++ 프로그래밍 언어에서 쉼표 연산자 (토큰 ,으로 표시)는 첫 번째 피연산자를 평가하고 결과를 무시한 이진 연산자이며 두 번째 피연산자를 계산하고이 값 (및 유형)을 반환합니다.

따라서

switch (i++, j--) {...} 

유는 무엇을 기대 않았다

i++; 
switch (j--) {...}