2011-08-24 4 views
1

if 문을 java의 switch 문으로 변환 할 수 있습니까?`if` 문을`switch` 문으로 변환 할 수 있습니까?

+2

혼란 :

int month = 8; String monthString = ""; if(month == 1) { monthString= "January"; }else if(month == 2) { monthString= "February"; }else if(month== 3) { monthString= "March"; } etc.... 

이 같이 썼다 될 수 있습니까? – Dair

+12

원한다면'if' 문을 100 페이지의 논문으로 바꿀 수 있습니다. :) 단지'delete' 키를 누르고 타이핑을 시작하십시오. –

답변

4

우선 기술적으로 스위치 블록입니다. 둘째, 가능하지만 극도로 불필요합니다. 당신이 그것을 수행하려는 경우 당신이 == 연산자를 사용하는 것이 문자열이 아닌 다른 뭔가를 비교하는 경우, 여기 당신이 변환을 할 수있는 한 가지 방법 ... 물론

int theCase; 
if (someVariable.equals(someString)) { 
    theCase = 1; 
} else if (someVariable.equals(someOtherString)) { 
    theCase = 2; 
} else { 
    theCase = 3; 
} 
switch (theCase) { 
    case 1: 
     //some code here 
     break; 
    case 2: 
     //some code here 
     break; 
    case 3: 
     //some code here 
     break; 
} 

이다.

두 개는 서로 바꿔 사용할 수도 있지만, chars 또는 ints으로 작업하고 하나의 조건 만 테스트하는 경우에만 가능합니다.

+1

$ 5는이 답변이 받아 들여질 것이라고 말합니다 ... (Tony의 모든 질문을보십시오; – fireshadow52

1

if에서 평가되는 내용과 보유하고있는 관련 진술 중 몇 개에 달려 있습니다.

당신이

if (i == 1) 
{ 
    function1 (i) 
} 
else 
if (i == 2) 
{ 
    function2 (i) 
} 

if (i == 3) 
{ 
    function3 (i) 
} 

이있는 경우 다음 예.

switch (i) { 
    case 1: 
     function1(i); 
     break; 
    case 2: 
     function2(i); 
     break; 
    case 3: 
     function3(i); 
     break; 
} 

평가가 여러 개인 경우 어려워집니다. if (i == 1) && (j == 2)은 switch-case 블록에서 표현하기가 훨씬 어려울 것입니다.

0

이론 상으로는 확실하지만 다른 것들을 확인하려고합니다. if 문은 특정 부울 조건에 응답하기위한 것이고 switch 문은 여러 가지 다른 가능성에 응답하기위한 것입니다. 즉, 문을 일련의 if else 문으로 쉽게 다시 쓸 수 있으며 그 반대의 경우도 마찬가지입니다. 일반적으로 그렇게하고 싶지는 않지만 망치를 사용하여 손톱을 조이고 나사 드라이버를 사용하여 나사를 조이십시오. 장치를 고정하기 위해 두 도구 중 하나를 사용할 수도 있습니다. 단지 작동하지 않습니다.

1

단일 if 문을 switch 문으로 변환하지는 않으나 수행 할 수 있습니다. 스위치의 기본값을 지정해야합니다. 스위치를 보증 할 많은 if ... else 문을 사용하는 경우. 당신이이 문을 교환 할 뜻 이죠

int month = 8; 
String monthString; 
switch (month) { 
    case 1: monthString = "January";  break; 
    case 2: monthString = "February";  break; 
    case 3: monthString = "March";   break; 
    case 4: monthString = "April";   break; 
    case 5: monthString = "May";   break; 
    case 6: monthString = "June";   break; 
    case 7: monthString = "July";   break; 
    case 8: monthString = "August";  break; 
    case 9: monthString = "September";  break; 
    case 10: monthString = "October";  break; 
    case 11: monthString = "November";  break; 
    case 12: monthString = "December";  break; 
    default: monthString = "Invalid month"; break; 
} 
관련 문제