高级 - 如果/ else if / else -statement

时间:2014-01-09 16:28:40

标签: java if-statement

我正在尝试制作一个迷你游戏,用户必须猜测他的号码是高于还是低于计算机。

我在制作扫描仪(如果有必要)和if / else if / else -statement时遇到了一些麻烦。

我的代码如下所示:

import java.util.Random;
import javax.swing.JOptionPane;


    public class Main {

        public static void main(String args)
        {
                //This will create the numbers.
            Random userNumber = new Random(10);
            Random comNumber = new Random(10);
            System.out.println("The USER was given the number: " + userNumber);
            System.out.println("The COMPUTER was given the number: " + comNumber);

                //This will ask if the USERS think that their number is HEIGHER, LOWER or EQUAL TO the COMPUTER's number.
            String heigerOrLower = JOptionPane.showInputDialog("Do you thinks that your number is heigher(H), lower(L) or equal-to(e) the computer's? ");

                //This if / else -statement will check if the users choice is right or wrong.
            if(){

            }
        }

    }

我不知道如何对语句进行检查:

1)如果用户的号码低于计算机的号码 - 并且用户同时键入“L”。

2)如果用户的号码等于计算机的号码 - 并且用户同时键入“E”。

3)如果用户的号码高于计算机的号码 - 并且用户同时键入“H”。

5 个答案:

答案 0 :(得分:3)

Random个对象提供了一个可以生成随机数的源 - 它们本身不是随机数。您只需要一个Random实例:

Random rand = new Random()

int userNumber = rand.nextInt(10);
int comNumber = rand.nextInt(10);

现在,您可以用数字比较userNumbercomNumber。例如,要完成你的第一点:

if (userNumber < comNumber && higherOrLower.equalsIgnoreCase("L")) {
    ...
}

答案 1 :(得分:0)

我不确定你有什么问题,因为你甚至没有尝试过if语句,但你可以使用多个

您可以使用多个if语句。

if(condition1) {
    //do stuff
}

if(condition2) {
    //do stuff
}

甚至是if else块

if(condition1) {
    //do stuff
}

else if(condition2) {
    //do stuff
}

答案 2 :(得分:0)

这不是编译的,但这应该足够接近,以便给你一个想法。

if ((userNumber < comNumber) && higherOrLower.equals("L") ) {
   (1)
} else if ((userNumber == comNumber) && higherOrLower.equals("E") ) {
   (2)
} else if ((userNumber > comNumber) && higherOrLower.equals("H") ) {
   (3)
} else {
   ///other
}

答案 3 :(得分:0)

您对Random的使用是错误的,但对于案例测试,您可以使用enum清晰灵活的资金。

enum Cmp {

    L {

                @Override
                boolean good(int a, int b) {
                    return a < b;
                }

            },
    E {

                @Override
                boolean good(int a, int b) {
                    return a == b;
                }

            },
    H {

                @Override
                boolean good(int a, int b) {
                    return a > b;
                }

            };

    abstract boolean good(int a, int b);
}

private static void test(int a, int b, Cmp cmp) {
    System.out.println("Cmp="+cmp+" a="+a+" b="+b+" -> "+cmp.good(a, b));
}

public static void main(String args[]) {
    try {
        test ( 1, 2, Cmp.valueOf("L"));
        test ( 1, 2, Cmp.valueOf("E"));
        test ( 1, 2, Cmp.valueOf("H"));
        test ( 1, 1, Cmp.L);
        test ( 1, 1, Cmp.E);
        test ( 1, 1, Cmp.H);
        test ( 1, 0, Cmp.L);
        test ( 1, 0, Cmp.E);
        test ( 1, 0, Cmp.H);
    } catch (Throwable t) {
        t.printStackTrace(System.err);
    }
}

答案 4 :(得分:0)

扫描仪位用于读取用户的输入。

        Scanner input = new Scanner(System.in); //import java.util.Scanner;
        System.out.println("Enter your choice (H)igher (L)ower (e)ven");
        String userInput = input.nextLine();

        boolean validEntry = false;
        while(!validEntry){
            if(userInput.equalsIgnoreCase("H")){
                //H was entered and valid
                validEntry = true;
            }else if(userInput.equalsIgnoreCase("L")){
                //L was entered and valid
                validEntry = true;
            }else if(userInput.equalsIgnoreCase("e")){
                //e was entered and valid
                validEntry = true;
            }
        }

循环是一个有效的入口循环,并将保持循环,直到选择了3个选项中的一个。其余部分检查用户输入的内容。

其余的代码由您决定如何使用它。