【发布时间】:2021-10-02 17:25:23
【问题描述】:
我需要创建一个程序来测试输入的三个整数是否可以等于三角形的边。分配需要使用运行测试的静态方法,然后主方法将调用静态方法。
如果输入的整数都不大于或等于其他两个整数的和,则系统将输出“True”。否则,它会输出“False”。
每当我输入我的三个数字然后单击运行时,程序就停在那里。它不会给我任何错误或输出任何东西。
public class TriangularTest1 {
public static boolean isTriangular (int a, int b, int c)
{
return (a + b > c && b + c > a && c + a > b);
}
public static void main(String args[]) {
int s1 = StdIn.readInt();
int s2 = StdIn.readInt();
int s3 = StdIn.readInt();
if (isTriangular(s1, s2, s3) == true)
System.out.print("True");
else
System.out.print("False");
}
}
【问题讨论】:
-
从您的描述看来,您应该没有在控制台中输入任何内容,考虑到您通过
STDIN进行输入,您是否将STDIN初始化为某处的扫描仪? -
可能你的控制台是行缓冲的,因为你使用了
print而不是println,所以它不会打印任何东西。 -
您是否已将问题简化为较小的工件?我的意思是,如果你有一个程序只需要一个整数并将其输出回来,它会工作吗?如果您的程序没有终止,那么它很可能会在调用您的函数之前等待。如果
isTriangular会被调用,它只会打印并退出,退出将刷新所有缓冲的输出。 -
无论如何,我们都无法从您提供的代码中重现您的问题,因为
StdIn不是 Java 类库的一部分并且您没有提供它。所以我们只能猜测。请参阅minimal reproducible example。 -
当我尝试运行程序时,我在控制台中输入了 3 个整数。我点击回车后,程序没有输出任何东西。
标签: java static-methods triangle