在我的搜索中,我似乎无法直截了当地回答是或否。在Android中,有没有办法在case-switch中使用条件语句?例如,age为int值:
switch (age){
case (>79):
// Do this stuff
break;
case (>50):
// Do this other stuff
break;
etc, etc
我已经尝试了几种编码方式(完全在黑暗中拍摄)并出现编译错误,我也尝试过嵌套的IF语句,但它并不支持break所以逻辑分解并最终在嵌套中执行较低的ELSE代码。我觉得switch-case是我最好的选择,但是我无法找到一个正确的语法示例,我正在尝试做什么!任何帮助,将不胜感激。我找到的所有例子都只是使用switch-case来做一些事情,比如如果它是1这样做,如果它是2那样做,但没有做100个案例陈述来检查年龄,我不是确定如何解决这个问题。
答案 0 :(得分:7)
没有。你不能这样做,
switch (age){
case (>79):
// Do this stuff
break;
case (>50):
// Do this other stuff
break;
}
您需要if
和else
,
if (age > 79) {
// do this stuff.
} else if (age > 50) {
// do this other stuff.
} // ...
答案 1 :(得分:6)
这是不可能的。相反,尝试这种极简主义的方法
age > 79 ? first_case_method()
: age > 50 ? second_case_method()
: age > 40 ? third_case_method()
: age > 30 ? fourth_case_method()
: age > 20 ? fifth_case_method()
: ...
: default_case_method();
答案 2 :(得分:1)
如果声明那么你就不能这样做。
if(age > 79)
{
//do stuff
}
else if(age > 50)
{
//do stuff
}
else
{
/do stuff
}
等...
答案 3 :(得分:0)
如果您使用循环,可能需要查看What is the "continue" keyword and how does it work in Java?。这不是一个使用开关的好地方。
if(age > 79)
{
//do stuff
continue; // STOP FLOW HERE AND CONTINUE THE LOOP
}
else if(age > 50)
{
//do stuff
continue; // STOP FLOW HERE AND CONTINUE THE LOOP
}
答案 4 :(得分:0)
每个switch的情况应该是一个整数或字符串,因为JavaSE 7并且你试图给它一个布尔值,所以它不可能.Read oracle doc详细了解java switch http://docs.oracle.com/javase/tutorial/java/nutsandbolts/switch.html
答案 5 :(得分:-1)
您不能对switch
使用条件语句。
但你可以用if
语句来做到这一点!如果你有一个循环,你可以使用continue
来停止任何即将到来的行,并从最里面的循环的开头开始。
if(age>76){
// Code...
continue;
}else if(age>50){
// More Code...
continue;
}else{
// Even more code...
continue;
}
答案 6 :(得分:-4)
可以做到。 代码需要略微改变。
public static void main(String[]arguments)
{
int x=1, age=55;
switch(x)
{
case 1: if((age>=60)&&(age<200))
System.out.println("Senior Citizen");
case 2: if((age>=18)&&(age<60))
System.out.println("Adult");
case 3: if((age>=12)&&(age<18))
System.out.println("Teenager");
break;
default :
System.out.println("Child");
break;
}
}