◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。
水仙数代码求解遇到无响应问题
在提供的 java 代码中,用户输入数据后没有得到任何输出。这可能是由以下问题引起的:
阻塞的 is() 方法
原始代码中,is() 方法不断阻塞,等待控制台输入数据:
立即学习“Java免费学习笔记(深入)”;
if (is(math[0], math[1], math[2], integer.parseint(a))) { system.out.println("这个数是水仙数"); }
因为 is() 方法包含一个调用 shuru() 方法的语句,该方法又回到读取控制台输入的 reader.nextint()。
错误的判断
is() 方法不应判断 (aaa)+(bbb)+(ccc) 是否等于用户输入的值,因为它会再次阻塞等待用户输入。
修改后的代码
为了解决这些问题,代码需要进行以下修改:
public static boolean is(int a,int b,int c, int num){ return(a*a*a)+(b*b*b)+(c*c*c)== num; }
if ((a*a*a)+(b*b*b)+(c*c*c)== Integer.parseInt(a)) { System.out.println("这个数是水仙数"); } else { System.out.println("这个不是水仙数"); }
修改后的代码解决了阻塞问题,并正确判断输入值是否是水仙数。
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。