Use an If statement with multiple integers Java
本问题已经有最佳答案,请猛点这里访问。
我在爪哇制作纸牌游戏"战争"文本。我有自己的代码,但我认为应该有一个更简单的方法:
1 2 3 | if (cardValue == 1 || cardValue == 5 || cardValue == 9 || cardValue == 13 || cardValue == 17 || cardValue == 21 || cardValue == 25 || cardValue == 29 || cardValue == 33 || cardValue == 37 || cardValue == 41 || cardValue == 45 || cardValue == 49 || ){ System.out.println("Clubs"); } |
钻石、红心和铁锹等。有更简单的方法吗?我在想这样的事情:
1 2 3 |
或者这个
2但是
好吧,你可以用
1 2 3 4 5 6 |
当然,这有点冗长。Java不是最有表现力的语言,但是你想做的是非常常见的,很多其他更动态的语言都有语法。为了进行比较,这就是同一段代码在Python中的外观——这更接近于您的想象:
1 2 | if cardValue in (1, 5, 9, 13, 17, 21, 25, 29, 33): print("Clubs") |
您可以使用实用方法
请注意,int值必须按数字顺序排列才能使此代码工作。也就是说,它的性能非常好。
在这种情况下,您可以使用modulo:
1 2 3 |
但这就要求所有卡德瓦卢1,5,9,13,…颜色相同。2,6,10,14,…是另一种颜色的3,7,11,15,…是第三种颜色的0,4,8,12,…是最后一种颜色。然后,可以使用
字符串颜色=空;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | switch (cardValue % 4) { case 0: color ="hearts"; break; case 1: color ="clubs"; break; case 2: color ="spade"; break; default: color ="diamond"; break; } System.out.println(color); |
更改架构。没有一个字段表示等级和套装。有一个军衔场,一个军衔场,一个军衔场,一个军衔场,一个军衔场。