Java 我的代码赢了';无法运行,但没有错误

Java 我的代码赢了';无法运行,但没有错误,java,input,equals,Java,Input,Equals,我有两个问题: 为什么我的程序不能运行 如何让它检查输入是否不等于某个值 什么 -- import java.util.Random; 导入java.util.Scanner; 公营直升机{ //创建扫描仪。 静态扫描仪sc=新扫描仪(System.in); 静态字符串输入=sc.nextLine(); 公共静态void main(字符串[]args) { //创建两个随机数。 Random rand=新的Random(); int userNumber=rand.nextInt(10)+1;

我有两个问题:

  • 为什么我的程序不能运行
  • 如何让它检查输入是否不等于某个值 什么 --

    import java.util.Random;
    导入java.util.Scanner;
    公营直升机{
    //创建扫描仪。
    静态扫描仪sc=新扫描仪(System.in);
    静态字符串输入=sc.nextLine();
    公共静态void main(字符串[]args)
    {
    //创建两个随机数。
    Random rand=新的Random();
    int userNumber=rand.nextInt(10)+1;
    int comNumber=rand.nextInt(10)+1;
    System.out.println(“您的号码是:“+userNumber+”共10个”);
    你认为你的数字是高(H)、低(L)还是等于(E)计算机数字;
    //检查用户是否正确。
    if(userNumbercomname&&input.equals(“H”))
    System.out.println(“你是对的,计算机的号码是:“+comNumber”);
    }
    }
    
    能否检查您是否已将文件命名为HeigherOrLower.java,或者对其进行适当重命名,谢谢

    它将运行并等待用户在

    static String input = sc.nextLine();
    

    我认为在eclipse中运行控制台时,您无法观察它。查看java进程是否存在于进程列表中,它对我来说运行正常,但它在输出任何文本之前等待用户输入。您可能希望将两个静态行移到“Doyou think…”行之后的main方法中:

    对于数值,只需使用!=如图所示:

    if ( ! input.equals("H") ) 
    
    if ( x != 3 )
    
    您的程序确实“运行”,只是您没有任何prmpots==>>System.out.println(“请键入您的输入”)///或任何其他类型的提示消息来通知用户。至于你的扫描器,我去掉了无效的修饰语“Static”,移到了你的主类中。至于逻辑,我不确定它应该做什么

         public class HeigherOrLower {
    
        //Creates the scanner.
    
    
        public static void main(String[] args)
         {
    
            System.out.println("Please type your input");
            Scanner sc = new Scanner(System.in);
            String input = sc.nextLine();
        //Creating the two random numbers.
        Random rand = new Random();
        int userNumber  = rand.nextInt(10) + 1;
        int comNumber = rand.nextInt(10) + 1;
    
        System.out.println("Your number is: " + userNumber +" of 10");
        System.out.println("Do you think that your number is Heigher(H), Lower(L) or Equal To(E) the computers number");
    
            //Checking if the user is right.
        if(userNumber < comNumber && input.equals("L"))
            System.out.println("You are right. The computer's number is: " + comNumber);
    
        if(userNumber == comNumber && input.equals("E"))
            System.out.println("You are right. The computer's number is: " + comNumber);
    
        if(userNumber > comNumber && input.equals("H"))
                System.out.println("You are right. The computer's number is: " + comNumber);
    
    
    
    
          }
        }
    
    公共类HeigherOrLower{
    //创建扫描仪。
    公共静态void main(字符串[]args)
    {
    System.out.println(“请键入您的输入”);
    扫描仪sc=新的扫描仪(System.in);
    字符串输入=sc.nextLine();
    //创建两个随机数。
    Random rand=新的Random();
    int userNumber=rand.nextInt(10)+1;
    int comNumber=rand.nextInt(10)+1;
    System.out.println(“您的号码是:“+userNumber+”共10个”);
    你认为你的数字是高(H)、低(L)还是等于(E)计算机数字;
    //检查用户是否正确。
    if(userNumbercomname&&input.equals(“H”))
    System.out.println(“你是对的,计算机的号码是:“+comNumber”);
    }
    }
    
    这两行:

    static Scanner sc = new Scanner(System.in);
    static String input = sc.nextLine();
    
    请执行以下操作:

    • 构造一个使用标准输入的新的
      扫描仪
    • 扫描仪中读取第一行
    由于这不是在一个方法中声明的,所以当您运行该程序时,这种情况几乎会发生(我不会用技术细节把您弄糊涂)

    所以它在输出任何东西之前等待读取输入

    因此,您可能希望将这两条语句(删除了
    static
    )放在
    main
    方法中,可能放在这一行之后:

    System.out.println("Do you think that your number is Heigher(H), Lower(L) or Equal To(E) the computers number");
    
    如果这不是问题所在,那么您实际上可能根本没有运行它,并且您必须提供关于如何运行它的更多详细信息

    要检查您的输入是否不等于某个值,您可以说
    !input.equals(“某物”)
    (在if语句中,
    这里的意思是“不”),或者您可以使用
    else

    if (input.equals("something"))
       System.out.println("It's equal");
    else
       System.out.println("It's not equal");
    

    您认为静态字符串输入=sc.nextLine()做什么?调试代码,你会发现问题的速度比问问题快。它只是等待一行被输入…这是一个相当疯狂的猜测。是什么让你认为这可能是问题所在?
    System.out.println("Do you think that your number is Heigher(H), Lower(L) or Equal To(E) the computers number");
    
    if (input.equals("something"))
       System.out.println("It's equal");
    else
       System.out.println("It's not equal");