Java 如何更改为案例陈述
我的问题是如何将此代码更改为case语句? 这是我的if语句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]){
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;
}