如果返回特定的随机数,则需要比大量的更好的东西

时间:2015-10-28 13:03:23

标签: java if-statement random

希望你能在这里看到我想要的东西。显然这段代码不起作用,但我基本上试图说,如果随机数是这些值中的一个,运行此代码。如果随机数是运行该代码的另一个值。我需要的东西相当于一个大的或声明而不使用大的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);
}

5 个答案:

答案 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
    }
}