【发布时间】:2015-02-08 21:52:52
【问题描述】:
好的,我是java初学者,通过网站和书籍自学。我尝试了一个带有for 循环和while 循环的简单平方根计算器(我已经包含了我在下面尝试的内容)。可悲的是,当我输入一个数字时,我的所有代码都会终止。任何帮助将不胜感激!
import java.util.Scanner;
public class The2RootProdject {
public static void main(String args[]) {
Scanner input = new Scanner(System.in);
double rootIt = input.nextDouble();
double dummy = 0.0000000;
while (dummy != dummy * dummy) {
dummy += 0.0000001;
if (rootIt == dummy * dummy) {
System.out.println("the squar root of " + rootIt + " is "
+ (dummy * dummy));
}
}
}
}
【问题讨论】:
-
while (0 != 0*0) 不会被执行,对吧?
-
一个数字几乎永远不会等于它自己乘以它自己,除非我遗漏了什么。这将导致循环立即退出。
-
嗯,
0等于0 * 0,所以永远不会进入 while 循环。 -
dummy != dummy * dummy“应该”是rootIt != dummy * dummy(整个算法不是一个好主意)。也许你应该学会使用调试器自己发现这样的问题。 -
您的输入不太可能有有理平方根。考虑检查
rootIt是否接近dummy * dummy,而不是完全相等。
标签: java square-root