2015-01-14 4 views
4

하나의 내부에서 여러 값을 처리하는 방법 case? 그래서 값 "first option""second option"에 대해 동일한 작업을 실행하려면?하나의 케이스에서 여러 값을 처리하는 방법은 무엇입니까?

올바른 방법인가요?

switch(text) 
{ 
    case "first option": 
    { 
    } 
    case "second option": 
    { 
     string a="first or Second"; 
     break; 
    } 
} 
+0

참조 [이] (http://csharp.net-tutorials.com/basics/switch-statement/) 문서를 참조하십시오. 가장 먼저 떠오르는 점은 첫 번째 경우에는 'break' 문이 누락되어 있다는 것입니다. –

+2

친숙한 제안 - [documentation] (http://msdn.microsoft.com/en-us/library/06tc147t.aspx)에 익숙해 져야합니다.) – Reniuz

+0

@Max 다음과 같은 경우가 실행됩니다. –

답변

14

는 그것은 MSDN에 C# documentation에서 찾을 수 있습니다 설명서의 '다중 라벨'라고.

switch 문은 스위치 섹션을 여러 개 포함 할 수 있으며 각 섹션에는 하나 이상의 사례 레이블 (아래의 사례 레이블에 나와 있습니다)이있을 수 있습니다. 그러나 두 개의 대소 문자 레이블에는 동일한 상수 값이 포함될 수 없습니다.

귀하의 변경된 코드 : 나는 다른 이후 밖으로 string a을 뽑아

string a = null; 

switch(text) 
{ 
    case "first option": 
    case "second option": 
    { 
     a = "first or Second"; 
     break; 
    } 
} 

참고하여 a에만 switch 내부 사용할 수 있습니다.

+0

꽤 똑같은가요? 나는 그 사건 "a": case "b"가 단지 "빈"진술이라고 생각했다. –

+0

아니요, 가을에 처음으로 블록이 실행됩니다. C#에는 첫 번째 옵션에 대한 코드 블록이있을 수 없습니다. Btw, 나는 잘못 읽었지만 명시 적으로 "다중 레이블"이라고 부르지 않았습니다. – helb

+0

@helb : 알겠습니다. 알았어. 문서의 중요한 부분을 수정했습니다. 감사합니다. –

1

이 같은 별개의 사례를 함께 모두를 치료하고 분리 할 수 ​​있도록하려면 당신은 단지 if 문을 사용하여 더 좋을 수는 :

if (first && second) 
{ 
    Console.WriteLine("first and second"); 
} 
else if (first) 
{ 
    Console.WriteLine("first only"); 
} 
else if (second) 
{ 
    Console.WriteLine("second only"); 
} 
2

것이 가능하다

switch(i) 
       { 
        case 4: 
        case 5: 
        case 6: 
         { 
          //do someting 
          break; 
         } 
       } 
관련 문제