2014-11-15 2 views
0

일부 프로그램을 작성하고 있습니다.이 프로그램을 사용하여 연결 상태를 알려줍니다.Android, 스위치 케이스를 사용하여 부울을 결정합니다.

if(isConnected) { 
 
    //if connection established \t 
 
    btnwifi.setText("Connection"); 
 
} else { \t 
 
    btnwifi.setText("Unconnected"); 
 
}

: 나는 경우에만-다른 사용하는 것이, 지금은 스위치 케이스를 사용하는 방법을 배우고 싶어요,하지만 난 스위치 케이스 부울을 사용하지 말아 발견, 다음은 내가 판단 공식을 쓴 것입니다
+1

스위치가 자바의 값, 긴 플로트, 더블 또는 부울을 허용하지 않습니다! 변수가 두 개 이상의 값을 가질 수 있으면 enum을 사용할 수 있습니다. boolean의 경우 else가 더 좋습니다. –

+1

@ MohammedAli에서 확장하면 어떤 프리미티브에서도 전환 할 수 없습니다. 열거 형은 스위치로 처리되어보다 명시적인 선언을 허용합니다. – zgc7009

+0

열거 형은 스위치와 함께 사용하는 것이 가장 좋습니다. 또한 다음을 참조하십시오. http://stackoverflow.com/questions/5141830/switch-expression-cant-be-float-double-or-boolean –

답변

0

학습 전환을 원합니다.
당신은 당신의 목적을 위해 열거를 사용할 수 있습니다 ,

public enum BtnWifi { // you can create new enum java file for this 
CONNECTED, NOT_CONNECTED 
} 
//.... Setting value for enum in your code 
BtnWifi btnWifi; 
if(isConnected) { 
//if connection established 
    btnWifi = BtnWifi.CONNECTED; 
} else {  
    btnWifi = BtnWifi.NOT_CONNECTED; 
} 
// No switch to use it... 
switch(btnWifi) { 
    case CONNECTED: 
    //code for connected... 
    break; 
    case NOT_CONNECTED: 
    //code for Not connected... 
    break; 
} 
0

왜 이런 방식으로 구현하고 싶은지 잘 모르겠습니다. 바이트, 짧은 문자의 정적 상수 부울 형식을 변환하는 함수를 작성, 당신이 경우에 당신이 그렇게 스위치에이 oracle doc

참조 할 수 있습니다, 자바 why java takes only true of false 스위치의

에서 부울 유형에 대한 링크를 참조하십시오 int 또는 문자열 형식을 사용하여 다음 스위치 문을 사용하지 않는 것이 좋습니다.

0

이것은 switch이 의도 한 것이 아니고 Java에서 지원되지 않습니다.

if 문은 부울 값을 기반으로 프로그램 흐름을 제어하는 ​​데 사용되며 완벽하게 작동하므로 다른 용도로 사용하려고합니까? switch 진술에 대해 배우고 싶다면 첫 번째 전화 포트는 어디 있는지 배우는 것이고 의미가 없습니다!

관련 문제