【问题标题】:Test if Integers Can Create a Triangle测试整数是否可以创建三角形
【发布时间】: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


【解决方案1】:

Java 中DataInputStream 类的readInt() 方法用于读取四个输入字节并返回一个整数值。该方法从输入流中读取接下来的四个字节,并将其解释为整数类型并返回。

要从控制台读入值,您需要使用 nextInt()Scanner 类。

示例代码:

import java.util.Scanner;
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[])
    {
        Scanner scanner = new Scanner(System.in);  // Create a Scanner object

        int s1 = scanner.nextInt();
        int s2 = scanner.nextInt();
        int s3 = scanner.nextInt();

        if (isTriangular(s1, s2, s3) == true)
            System.out.print("True");
        else
            System.out.print("False");

    }
}

要了解有关nextInt()readInt() 的更多信息,请查看以下资源:

【讨论】:

  • 嘿,谢谢你的提示!但是,它仍然没有输出任何东西。我做错了吗?
  • 它给出真或假作为输出。请再检查一次。我从代码中得到了预期的输出。
  • 我会继续努力的。我想我昨天下载的新编译器有问题。再次感谢您的帮助!
  • 不客气。如果您遇到编译器问题,特别是如果您是该编译器的新手,请在 YouTube 中搜索,希望您能得到所需的帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多