这个程序旨在提示用户输入三个整数,将整数存储在三个单独的变量中,并按降序(从最高值到最低值)输出这三个整数。
import java.util.Scanner;
public class ProgramToo
{
public static void main(String [] args)
{
Scanner kbd = new Scanner(System.in);
System.out.println("Enter the first number:");
int num1 = kbd.nextInt();
System.out.println("Enter the second number:");
int num2 = kbd.nextInt();
System.out.println("Enter the three number:");
int num3 = kbd.nextInt();
int result = largeSmall(num1, num2, num3);
System.out.println(result);
}
public static int largeSmall(int one, int two, int three)
{
if(one > two && two > three)
{
System.out.println(one + " " + two + " " + three);
}
else if(two > one && one > three)
{
System.out.println(two + " " + one + " " + three);
}
else if(three > two && two > one)
{
System.out.println(three + " " + two + " " + one);
}
else
{
System.out.println(one + " " + three + " " + two);
}
return largeSmall(one, two, three);
}
}
当我运行这个程序的时候,它输出了一百万次整数,然后崩溃了,为什么?
6条答案
按热度按时间iklwldmw1#
你的解决方案设计过度了。就像这样做吧:
goucqfw62#
看起来你几乎做到了。我假设你是一个新学生。如果你只是将方法更改为void(不需要返回值),你将从调用方法中得到你需要的答案。你让方法和main都通过println循环。我只删除了几行,并更改了方法签名以使其工作。
xbp102n03#
blm
的解决方案会起作用,但我认为知道你的解决方案出了什么问题可能会有用。你不断地一遍又一遍地调用同一个函数。要解决这个问题,请执行以下操作1.将返回类型更改为
void
1.删除return语句递归
1.将
int result = largeSmall(num1, num2, num3); System.out.println(result);
替换为largeSmall(num1, num2 num3);
。yrefmtwq4#
nmpmafwu5#
int num = 0;扫描仪kbd =新扫描仪(System.in);数值=千字节.下一个整数();系统输出打印输入(编号);运行此程序,但输入文本而不是整数。程序应崩溃并告诉您nextInt方法抛出了哪种异常。将此代码 Package 在try/catch块中,在其中捕获抛出的异常。添加一个循环,以便用户在输入文本时必须再次输入数字。
wr98u20j6#