Java 如何更改为案例陈述

Java 如何更改为案例陈述,java,if-statement,switch-statement,Java,If Statement,Switch Statement,我的问题是如何将此代码更改为case语句? 这是我的if语句 if (jarak < 80){ merah = 255; hijau = 255; biru = 255; alpha = 255; } else if (jarak == 0) { merah = 0; hijau = 0; biru = 0; alpha = 255; } if(jarak < 80) { switch(jarak[0]){

我的问题是如何将此代码更改为case语句? 这是我的if语句

if (jarak < 80){
    merah = 255;
    hijau = 255;
    biru = 255;
    alpha = 255;  
}
else if (jarak == 0)
{
    merah = 0;
    hijau = 0;
    biru = 0;
    alpha = 255;
}
if(jarak < 80)
{
    switch(jarak[0]){
    case merah = 255;
        break;    
    }  
}
if(jarak<80)
{
开关(jarak){
案例0:
//当'jarak==0时,执行任何操作`
打破
}  
}

案例就是这样编写的。

在Java中,
switch
语句要求案例中的具体值,而不是范围。就你而言:

  • jarak==0
    -此开关适合
    开关
  • jarak<80
    -这个没有
因此,你最好能做的是:

if (jarak < 80) {
    switch (jarak) {
        case 0:  merah = 255;
                 hijau = 255;
                 biru = 255;
                 alpha = 255; 
                 break;
        default: merah = 0;
                 hijau = 0;
                 biru = 0;
                 alpha = 255; 
                 break;  
     }
}
if(jarak<80){
开关(jarak){
案例0:merah=255;
hijau=255;
biru=255;
α=255;
打破
默认值:merah=0;
hijau=0;
biru=0;
α=255;
打破
}
}

为了更好地理解,请参阅关于switch case的文档:

为了使代码更简洁,您可以创建一个实用程序类,该类将返回可用值,以便与switch语句一起使用

public class JarakUtils {

    public static final enum JarakOutcome { ZERO, LESSER_THAN_80} ;

    public static JarakOutcome getOutcome(int jarak) {
        JarakOutcome outcome;

        if(jarak < 80) {
            outcome = JarakOutcome.LESSER_THAN_80 ;
        } 

       // ... 

        return outcome;
    } 

} 
您将为枚举类型添加默认值


可能我永远不会使用这种方法,因为这会迫使您编写大量代码以达到相同的结果(通常与您在ifelse语句中编写的结果相同)

看来你完全不明白开关是怎么工作的。花点时间阅读文档:您的代码的第一种形式已经被破坏了-只有当
jarak
不小于80时,您才能访问
else。。。并且0已经小于80。。。你希望如何进入
的主体,如果
?你到底想达到什么目的,为什么要使用案例陈述?如果
jarak
是一个整数变量,你期望
jarak[0]
是什么意思?你不妨问,“我怎么能用链锯把一张画挂在墙上?”就像链锯不适合你的工作一样,
switch
语句也不适合你的工作。你为什么要使用它?我在那里添加了一些信息。
if (jarak < 80) {
    switch (jarak) {
        case 0:  merah = 255;
                 hijau = 255;
                 biru = 255;
                 alpha = 255; 
                 break;
        default: merah = 0;
                 hijau = 0;
                 biru = 0;
                 alpha = 255; 
                 break;  
     }
}
public class JarakUtils {

    public static final enum JarakOutcome { ZERO, LESSER_THAN_80} ;

    public static JarakOutcome getOutcome(int jarak) {
        JarakOutcome outcome;

        if(jarak < 80) {
            outcome = JarakOutcome.LESSER_THAN_80 ;
        } 

       // ... 

        return outcome;
    } 

} 
switch(getOutcome(jarak)) {
    case ZERO:
        //... 
    break;
    case LESSER_THAN_80:
        //... 
    break;
}