Java 在获得用户输入后“;扫描仪名称=新扫描仪(System.in)&引用;如何在if语句中使用is?

Java 在获得用户输入后“;扫描仪名称=新扫描仪(System.in)&引用;如何在if语句中使用is?,java,if-statement,java.util.scanner,system.in,Java,If Statement,Java.util.scanner,System.in,所以我在学习java,一点一点地,我学到了更多的知识,现在我在学习上跟随辅导老师和其他网络老师,但我在一个问题上陷入了困境,我无法找出问题所在 import java.util.Scanner; class apples{ public static void main(String args[]){ System.out.print("Player Name?"); Scanner name = new Scanner(System.in);

所以我在学习java,一点一点地,我学到了更多的知识,现在我在学习上跟随辅导老师和其他网络老师,但我在一个问题上陷入了困境,我无法找出问题所在

import java.util.Scanner;

class apples{
    public static void main(String args[]){

        System.out.print("Player Name?");
        Scanner name = new Scanner(System.in);
        System.out.print(name.nextLine());

        System.out.print(" ,how old are you?");
        Scanner age = new Scanner(System.in);
        System.out.print(age.nextLine());



        if (age >= 15){
            System.out.println("welcome to Azura World");
        }else{
            System.out.println("insufficient experience");
        }
    }
}
这应该做的是,询问玩家的名字,一个我输入的名字,它应该问名字,你多大了?有了它,我就有了输入的年龄,因为我想在if语句中使用它,但它不起作用,我不明白为什么。所以如果有时间,请解释一下


另外,我现在用它作为指南

我想您只是简单地打印值,首先将其存储在某个变量中,然后比较:

String userage = age.nextLine();
int a=Integer.valueOf(userage);
 if (a >= 15){
        System.out.println("welcome to Azura World");
    }else{
        System.out.println("insufficient experience");
    }

这是因为java是静态类型的,
Scanner
readLine
方法返回字符串,
String
不是
int
Integer
,因此不能与
int
Integer
进行比较。您需要将返回值“强制转换”为
整数
,以便能够使用Paras Mittal或suchit解决方案将其与int进行比较(我个人会选择Paras解决方案,因为它使用本机
扫描仪
功能)

这增加了一些困难,因为您现在必须处理用户没有向您提供类似于“
整数”的答案的情况(正如您最终必须使用实际代码一样,它现在不会显示)。在这种情况下,readLine将抛出一个
InputMismatchException
,您至少有两种方法可以处理它(根据您的想象,可能还有更多方法):

  • 因为它继承了
    RuntimeException
    ,所以您可以忽略它,让它对您的用户或方法的使用者产生影响
  • 您可以环绕
    age.nextInt()
    使用
    try…catch
    子句,然后执行对您的用例有意义的任何操作(忽略它并为该值设置巧妙的默认值,再次询问用户),您还可以先发制人地测试用户输入是否可以转换为整数或继续询问
  • public static void main(String[] args) {
        System.out.print("Player Name?");
        Scanner name = new Scanner(System.in);
        System.out.print(name.nextLine());
    
        System.out.print(" ,how old are you?");
        Scanner age = new Scanner(System.in);
    
        int ageVal = age.nextInt();
    
        System.out.print(ageVal);
    
        if (ageVal >= 15){
            System.out.println("welcome to Azura World");
        }else{
            System.out.println("insufficient experience");
        }
    }