所以我正在学习java,一点一点地获得更多的知识,现在我跟随tutroials和其他webistes等学习,但我坚持一个问题,我无法弄清楚是什么问题。
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语句中使用它,但它不工作,我不明白为什么。所以请说明是否有时间。
我也正在使用THIS作为现在的指南
答案 0 :(得分:0)
我认为您只是打印该值,首先将其存储在某个变量中然后进行比较:
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");
}
答案 1 :(得分:0)
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");
}
}
答案 2 :(得分:0)
这是因为java是静态类型的,Scanner
的{{1}}方法返回一个字符串,而readLine
不是String
或{{ 1}}因此无法与int
或Integer
进行比较。你需要施展'返回值为int
,以便能够使用Paras Mittal或其他解决方案将其与int进行比较(我使用本地Integer
功能时,我会选择Paras解决方案)。
这会增加一些困难,因为您现在必须处理用户没有为您提供&{39; Integer
的情况,例如'回答(正如您最终必须使用的是实际代码,它现在还没有出现)。在这种情况下,readLine将抛出Scanner
,你至少有两种方法可以处理(可能还有更多取决于你的想象力):
Integer
,你可以忽略它并让它吹向你的用户,或者是你方法的消费者InputMismatchException
子句包围RuntimeException
,然后对您的用例执行重要操作(忽略它并为该值设置聪明的默认值,再次向用户询问),您也可以抢先测试用户输入是否可以转换为整数或继续询问。