gpt4 book ai didi

Java:尝试理解使用扫描仪从用户那里获取输入

转载 作者:行者123 更新时间:2023-12-01 09:34:32 25 4
gpt4 key购买 nike

我有这个程序和一些关于 Scanner 类的 .next()、.nextInt()、.hasNext() 和 .hasNextInt() 如何工作的问题。预先感谢您的帮助:)

import java.util.Scanner;

public class test {

public static void main (String[] args) {
Scanner console = new Scanner(System.in);
int age;
System.out.print("Please enter your age: ");
while (!console.hasNextInt()) {
System.out.print("Please re-enter your age: ");
console.next();
}
age = console.nextInt();
System.out.println("Your age is "+age);
}
}

1/第一次执行!console.hasNextInt()时,为什么要求输入?

我一开始以为console是空的,所以!console.hasNextInt()是True(空不是int),那么它应该直接从< strong>“请输入您的年龄:”改为“请重新输入您的年龄:”但我的想法似乎是错误的。

在这里,用户需要在打印“请重新输入您的年龄:”之前输入一些内容。

2/console.next() 的数据类型始终是字符串(我尝试制作 int s = console.next(); 并且它给出了错误),那为什么这不是一个无限循环呢?

3/举个例子,当涉及到console.next();时,我输入21。为什么年龄的值为21?我想因为 console.hasNextInt(),我需要输入另一个数字,这个新数字将是年龄的值。

最佳答案

The java.util.Scanner.hasNextInt() method returns true if the next token in this scanner's input can be interpreted as an int value in the default radix using the nextInt() method.

当你从非整数输入开始时,hasNextInt() 将为 false,并且你将进入 while 循环。然后它会提示你重新输入你的年龄。但如果从整数开始,就不会进入循环。您的年龄将被打印。

console.next() 表示它接受下一个输入标记并返回字符串。如果您将代码写为:

String s = null;
while (!console.hasNextInt()) {
s = console.next();
System.out.println("You entered an invalid input: " + s);
System.out.print("Please re-enter your age: ");

}

console.next() 用于处理非整数输入。现在,如果您输入非整数 twenty,您将看到 console.hasNextInt() 将为 false,并且 console.next() code> 将读取它。

关于Java:尝试理解使用扫描仪从用户那里获取输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39115563/

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