java中switch条件_关于java:你能在Android的switch-case中使用条件语句吗?

在我的寻找中,我似乎找不到一个直截了当的肯定或否定。在android中,有没有一种在case switch中使用条件语句的方法?例如,年龄是一个int值:

switch (age){

case (>79):

// Do this stuff

break;

case (>50):

// Do this other stuff

break;

etc, etc

我尝试了几种方法来编写代码(完全在黑暗中进行拍摄),并提出了编译器错误,我还尝试了一个嵌套的if语句,但它不支持break,因此逻辑崩溃,最后在嵌套中执行其他代码。我觉得switch case是我最好的选择,但是我找不到一个正确语法的例子来说明我要做的事情!任何帮助都将不胜感激。我发现的所有例子都是使用开关盒做一些事情,比如,如果它是1,那么就这样做,如果它是2,那么就这样做,但是如果不做100个案例陈述来对照年龄,我不知道还能怎么做。

你是通过一个循环来运行这个吗?尝试发布更多代码。

您可能需要查看stackoverflow.com/questions/389741/continue-keyword-in-java。这不是使用开关的好地方。

不,你不能这样做,

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.

} // ...

唯一的问题是,假设年龄是51岁,如果是50岁,如果是45岁,如果是35岁,等等。我尝试使用"break";但显然,这不适用于嵌套的if。那么,你如何让它只做一个没有所有低层的?

正如我在回答中所说,如果输入了if块,它就不会进入else块。这不是一个switch。

所以,如果我正确理解您的话,一旦满足了一个if条件,它就不再计算该嵌套if块中的所有其他嵌套if了?所以这就像是暗示了休息?

@罗伯特不。这些不是嵌套的ifs。这是if,然后是else。如果a是6,那么if (a > 5) { AAA; } else if (a > 3) { BBB; } else { CCC; }将做AAA(而不是其他任何事情)。如果A是4,它将做BBB(而不是其他)。如果A是-1,它会做CCC….第一个测试,第二个测试,否则….

谢谢!我想我现在明白了。我可能没有用正确的词,因为我对这个和学习很陌生,但我明白了!-)

这是不可能的。相反,试试这种极简主义的方法

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();

这与问题没有直接关系,即使通过它可以被看作是一个有效的答案。请提供更多详细信息,因为问题是关于switch语句的,而您的答案提供了if-then-else解决方案。

正如其他人已经提到的那样,在Java切换循环中没有使用条件语句的方法。相反,这种处理情况的方法可能不那么复杂。

不能使用if-then语句。

if(age > 79)

{

//do stuff

}

else if(age > 50)

{

//do stuff

}

else

{

/do stuff

}

等。。。

每一个交换机的情况都应该是JavaASE 7中的一个整数或字符串,并且您试图将布尔值馈送给它,这样就不可能了。http://docs.oracle.com/javase/tutorial/java/nutsandbolts/switch.html

如果你正在使用一个循环,你可能想看看什么是"继续"关键字,它是如何在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

}

不能在switch中使用条件语句。

但是你可以用if语句来实现!如果你有一个循环,你可以使用continue停止任何即将到来的行,从最里面的循环开始。

if(age>76){

// Code...

continue;

}else if(age>50){

// More Code...

continue;

}else{

// Even more code...

continue;

}

在他切换的中断中,发布这个问题的用户不需要继续。

这是可以做到的。代码需要稍作修改。

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;

}

}

那不管用。自从x = 1以后,你总是以case 1结束。

那是不对的。每件案子之后我都没有休息。所以它验证了每一个案例,而不仅仅是案例1。

我真的错过了。但是switch语句的目的是什么呢?实际上,它只是一个if语句链。

这是我个人因滥用开关/箱子而获得的奖励。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值