Java 高级-If/else If/else-语句

Java 高级-If/else If/else-语句,java,if-statement,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) { /

我正在尝试制作一个小游戏,用户必须猜测他的数字是高于还是低于电脑的数字

我在制作扫描仪(如果有必要)和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”。

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

Random rand = new Random()

int userNumber = rand.nextInt(10);
int comNumber = rand.nextInt(10);
现在您可以用数字比较
userNumber
comNumber
。例如,要完成第一点:

if (userNumber < comNumber && higherOrLower.equalsIgnoreCase("L")) {
    ...
}
if(userNumber
我不确定您遇到了什么问题,因为您甚至没有尝试使用if语句,但可以使用多个if语句

可以使用多个if语句

if(condition1) {
    //do stuff
}

if(condition2) {
    //do stuff
}
甚至一个if-else块

if(condition1) {
    //do stuff
}

else if(condition2) {
    //do stuff
}

这是没有编译的,但这应该足够接近给你一个想法

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
}
if((userNumbercomname)&&higherOrLower.equals(“H”)){
(3)
}否则{
///其他
}

您使用的
随机
是错误的,但对于案例测试,您可以使用清晰灵活的
枚举
进行资助

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);
    }
}
枚举Cmp{ L{ @凌驾 布尔好(整数a,整数b){ 返回ab; } }; 抽象布尔好(inta,intb); } 专用静态空隙测试(int a、int b、Cmp){ 系统输出打印项次(“Cmp=“+Cmp+”a=“+a+”b=“+b+”->“+Cmp.good(a,b)); } 公共静态void main(字符串参数[]){ 试一试{ 测试(1,2,Cmp.valueOf(“L”)); 测试(1,2,Cmp.valueOf(“E”)); 测试(1,2,Cmp.valueOf(“H”)); 试验(1,1,Cmp.L); 试验(1,1,Cmp.E); 试验(1,1,Cmp.H); 试验(1,0,Cmp.L); 试验(1,0,Cmp.E); 试验(1,0,Cmp.H); }捕获(可丢弃的t){ t、 printStackTrace(System.err); } }
扫描器位是这样读取用户输入的

        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个选项之一。其余部分检查用户输入的内容


代码的其余部分取决于您如何使用此if-then。

您是否编写了一些内容供我们检查?您遇到了哪些问题?您想知道如何接受用户输入吗?您想知道如何在
if
语句中设置条件吗?您想知道如何同时检查这两个值吗?顺便问一下,为什么
userInput
newrandom(10)
初始化?你意识到在这种情况下,
userInput
不是一个数字,而是一个
Random
实例,不是吗?是的,为什么
userNumber
Random是一个
Random
数字生成器?对不起,我刚刚开始用Java编写代码。我只是认为这是你如何制造一个随机数的,但如果不是,我怎么能制造一个呢?我需要一个随机数,因为这是游戏的主题。好建议,但这不能处理
e
用户输入。这个答案也不需要。这个问题不仅仅是用这个答案来回答的。@crush我只回答了OP的第一个问题——其他问题我留给他,因为它们不应该偏离我所展示的太多。