如何在Java中显示错误消息
我是一个初学者,我必须编写一个代码,根据用户给我的半径计算面积和周长。这一部分很简单,但老师也希望我只接受有效的整数,并让用户在输入不正确时重新输入值 因此,我可以让它显示每种情况下的错误消息,但输入负整数时除外:如何在Java中显示错误消息,java,java.util.scanner,Java,Java.util.scanner,我是一个初学者,我必须编写一个代码,根据用户给我的半径计算面积和周长。这一部分很简单,但老师也希望我只接受有效的整数,并让用户在输入不正确时重新输入值 因此,我可以让它显示每种情况下的错误消息,但输入负整数时除外: import java.util.Scanner; public class GetCircle { public static void main(String []args) { Scanner input = new Scanner(Syst
import java.util.Scanner;
public class GetCircle
{
public static void main(String []args)
{
Scanner input = new Scanner(System.in);
int radius;
do {
System.out.print("Please enter size of radius (Must be integer): ");
while (!input.hasNextInt()) {
System.out.print("That is not a valid number, please try again :");
input.next();
}
radius = input.nextInt();
} while (radius < 0);
System.out.println("The radius is: " + radius);
}
}
import java.util.Scanner;
公共类GetCircle
{
公共静态void main(字符串[]args)
{
扫描仪输入=新扫描仪(System.in);
整数半径;
做{
系统输出打印(“请输入半径大小(必须为整数):”;
而(!input.hasNextInt()){
System.out.print(“这不是一个有效的数字,请重试:”);
input.next();
}
半径=输入。nextInt();
}而(半径<0);
System.out.println(“半径为:“+radius”);
}
}
这就是我得到的结果:
请输入半径大小(必须为整数):aaa
该号码无效,请重试:4.5555
这不是有效数字,请重试:-5
请输入半径大小(必须为整数):-5
请输入半径大小(必须是整数):-8.777
这不是有效数字,请重试:-4
请输入半径大小(必须为整数):
**所以当它是一个负整数时,它不会显示错误消息
我该如何解决这个问题呢?有很多方法,但对于初学者来说,最简单的方法是在
半径赋值和外部while循环结束之间添加if
语句:
if (radius < 0) {
System.out.print("The radius must not be negative, please try again :");
}
if(半径<0){
System.out.print(“半径不能为负数,请重试:”;
}
如果我答对了你的问题,那么你就不需要使用!input.hasNextInt()
。你就是这样做的
import java.util.Scanner;
public class GetCircle {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int radius = 0;
System.out.print("Please enter size of radius (Must be integer): ");
while (true){
if(input.hasNextInt()){
radius = input.nextInt();
if (radius < 0){
System.out.println("That is not a valid number, please try again :");
System.out.println("Please enter size of radius (Must be integer): ");
} else {
System.out.println("The radius is: " + radius);
}
} else {
System.out.println("That is not a valid number, please try again :");
System.out.println("Please enter size of radius (Must be integer): ");
input.next();
}
}
}
}
import java.util.Scanner;
公共类GetCircle{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(System.in);
int半径=0;
系统输出打印(“请输入半径大小(必须为整数):”;
while(true){
if(input.hasNextInt()){
半径=输入。nextInt();
如果(半径<0){
System.out.println(“这不是一个有效的数字,请重试:”;
System.out.println(“请输入半径大小(必须为整数):”;
}否则{
System.out.println(“半径为:“+radius”);
}
}否则{
System.out.println(“这不是一个有效的数字,请重试:”;
System.out.println(“请输入半径大小(必须为整数):”;
input.next();
}
}
}
}
请不要大声喊叫。另外,请格式化您的问题,以便我们能够最佳地为您提供帮助。提示:-5
关于hasNextInt
是可以的,我意识到了这一点,我通过底部的while(radius<0)捕捉到错误,但我希望它显示错误消息,我被卡住了。我不知道怎么做。我考虑过使用:while(!input.hasNextInt()| | radius<0),但这也不起作用。我们还没有学会使用try-and-catch,因此我无法使用它。请输入半径的大小(必须是整数):-5半径是:-5,因此它没有显示错误消息…但是现在当用户键入4.5或a时,一些不是整数的东西,程序只是退出……如果你看原始代码,它会捕获所有错误。因此,如果用户键入R、7.5或-4,则会使他再次输入。但是当它是一个负整数时,我不能让它显示错误消息。这是唯一的问题…我做了,但我的名声不到15。。。我可以问几个问题吗?这不起作用,因为您得到:这不是一个有效的数字,请重试:-5半径不能为负,请重试:请输入半径大小(必须为整数):因此它现在重复两条消息,然后只需将第一个System.out.print()调用移到“do”之前,所以它在外循环之外。你知道如何在JOptionPane中使用相同的原理吗?我不太熟悉。