Java 水仙数判断代码无响应,如何解决?

java 水仙数判断代码无响应,如何解决?

水仙数代码求解遇到无响应问题

在提供的 java 代码中,用户输入数据后没有得到任何输出。这可能是由以下问题引起的:

阻塞的 is() 方法

原始代码中,is() 方法不断阻塞,等待控制台输入数据:

if (is(math[0], math[1], math[2], integer.parseint(a))) {
    system.out.println("这个数是水仙数");
}

因为 is() 方法包含一个调用 shuru() 方法的语句,该方法又回到读取控制台输入的 reader.nextint()。

错误的判断

is() 方法不应判断 (aaa)+(bbb)+(ccc) 是否等于用户输入的值,因为它会再次阻塞等待用户输入。

修改后的代码

为了解决这些问题,代码需要进行以下修改:

  • 消除 is() 方法中的阻塞语句:
public static boolean is(int a,int b,int c, int num){
    return(a*a*a)+(b*b*b)+(c*c*c)== num;
}
  • 在 main() 方法中将判断放入 if 块中:
        if ((a*a*a)+(b*b*b)+(c*c*c)== Integer.parseInt(a)) {
            System.out.println("这个数是水仙数");
        } else {
            System.out.println("这个不是水仙数");
        }

修改后的代码解决了阻塞问题,并正确判断输入值是否是水仙数。

以上就是Java 水仙数判断代码无响应,如何解决?的详细内容,更多请关注其它相关文章!