希望你能在这里看到我想要的东西。显然这段代码不起作用,但我基本上试图说,如果随机数是这些值中的一个,运行此代码。如果随机数是运行该代码的另一个值。我需要的东西相当于一个大的或声明而不使用大的if-else。感谢
static int cardNumber = rnd.nextInt(13) + 1;
if (cardNumber == 1||11||12||13)
{
System.out.println(faceCard + " of " + suit);
}
else
{
System.out.println(cardNumber + " of " + suit);
}
答案 0 :(得分:5)
您可以从开关/案例中受益:
switch (caseNumber) {
case 1 : case 11 : case 12 : case 13 :
<specific case code>;
break;
default :
<general case code>;
break;
}
答案 1 :(得分:1)
使用switch(int)
澄清
static int cardNumber = rnd.nextInt(13) + 1;
switch (cardNumber)
case 1:
case 11:
case 12:
case 13:
System.out.println(faceCard + " of " + suit);
break;
default:
System.out.println(cardNumber + " of " + suit);
break;
}
答案 2 :(得分:1)
嗯,不是一个大的if / else,只是两个条件:
static int cardNumber = rnd.nextInt(13) + 1;
if (cardNumber == 1 || cardNumber >= 11)
{
System.out.println(faceCard + " of " + suit);
}
else
{
System.out.println(cardNumber + " of " + suit);
}
答案 3 :(得分:0)
我想你可以简化它,在你的情况下,这可能会有效..
int cn = rnd.nextInt(13) + 1;
if(cn <= 10 && cn > 1) {
System.out.println("Non-Face");
} else {
System.out.println("Face");
}
答案 4 :(得分:0)
您可以使用具有穿透功能的开关盒。
public static void main(String args[]) {
int cardNumber = 10;
switch (cardNumber) {
case 1:
case 11:
case 12:
case 13:
// your if case
break;
case 100:
// some other case (example)
break;
default:
// else case
break;
}
}
您还可以编写一种方法,告诉您卡片是否有脸! 这将更容易使用,并可以防止冗余代码。
您也可以使用类卡,而不是整数来保存您的卡值。 Enum也不会坏。
class Card {
public static boolean hasFace(int cardNum) {
if (cardNum > 13)
throw new InvalidParameterException("There is no card with a value greater 31!");
boolean rval = false;
switch (cardNum) {
case 1:
case 11:
case 12:
case 13:
rval = true;
break;
default:
break;
}
return rval;
}
}
主要针对案例2:
public static void main(String args[]) {
int cardNumber = 10;
if(Card.hasFace(cardNumber)){
// your if case
}
else {
// your else case
}
}