Java 在获得用户输入后“;扫描仪名称=新扫描仪(System.in)&引用;如何在if语句中使用is?
所以我在学习java,一点一点地,我学到了更多的知识,现在我在学习上跟随辅导老师和其他网络老师,但我在一个问题上陷入了困境,我无法找出问题所在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);
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");
}
}