gpt4 book ai didi

java - 获取用户输入 "Scanner name = new Scanner(System.in);"后如何在if语句中使用is?

转载 作者:太空宇宙 更新时间:2023-11-04 14:23:34 29 4
gpt4 key购买 nike

所以我正在学习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 语句中使用它,但它不起作用,我不明白为什么。所以如果有时间请解释一下。

我也在使用THIS暂时作为指导

最佳答案

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

这增加了一些困难,因为您现在必须处理用户没有为您提供“Integer-like”答案的情况(就像您最终必须使用实际代码一样) ,它只是暂时不显示)。在这种情况下,readLine将抛出一个InputMismatchException,您至少有两种方法可以处理它(可能有更多,具体取决于您的想象):

  1. 因为它继承了RuntimeException,所以您可以忽略它并让它攻击您的用户或您的方法的使用者
  2. 您可以用 try...catch 子句包围 age.nextInt(); ,然后执行对您的用例重要的任何操作(忽略它并设置聪明)默认为该值,再次询问用户),您还可以预先测试用户输入是否可以转换为整数或继续询问。

关于java - 获取用户输入 "Scanner name = new Scanner(System.in);"后如何在if语句中使用is?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26906752/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com