Java 求一个数的sqrt
所以我只是想写一个程序,让用户输入一个大于10的数字,然后找到这个数字的sqrt。但我应该多次执行平方根运算,以使输入数字的sqrt小于4。之后,我应该打印数字的sqrt的初始值和平方根操作完成的次数。我似乎没有发现我写的程序有什么问题。你能帮我吗Java 求一个数的sqrt,java,loops,while-loop,do-while,square-root,Java,Loops,While Loop,Do While,Square Root,所以我只是想写一个程序,让用户输入一个大于10的数字,然后找到这个数字的sqrt。但我应该多次执行平方根运算,以使输入数字的sqrt小于4。之后,我应该打印数字的sqrt的初始值和平方根操作完成的次数。我似乎没有发现我写的程序有什么问题。你能帮我吗 public static void main(String[] args) { int counter = 1 ; double sqrt , sqrt1 , n ; Scanner input = new Sc
public static void main(String[] args) {
int counter = 1 ;
double sqrt , sqrt1 , n ;
Scanner input = new Scanner (System.in);
do{
System.out.print("Enter any number : ");
n = input.nextInt();
}while(n < 10);
sqrt = Math.sqrt(n);
while (sqrt > 4){
sqrt1 = Math.sqrt(sqrt);
counter++ ;
}
System.out.println("The square root of the entered number is : " + sqrt);
System.out.println("The square root operation was made : " + counter + " time(s)");
}
publicstaticvoidmain(字符串[]args){
int计数器=1;
双sqrt,sqrt1,n;
扫描仪输入=新扫描仪(System.in);
做{
System.out.print(“输入任意数字:”);
n=input.nextInt();
}n<10;
sqrt=Math.sqrt(n);
而(sqrt>4){
sqrt1=Math.sqrt(sqrt);
计数器++;
}
System.out.println(“输入的数字的平方根为:“+sqrt”);
System.out.println(“进行了平方根运算:“+计数器+”时间)”;
}
}看看这个循环:
while (sqrt > 4){
sqrt1 = Math.sqrt(sqrt);
counter++ ;
}
您正在检查
sqrt
是否大于4
,但您没有在循环内修改sqrt
的值,因此sqrt>4
将永远保持true
,循环将永远继续迭代。提示:初始设置is后是否更改变量sqrt
的值?这就是使用调试器单步执行代码应该是解决此问题的最快方法。这就是为什么永远不应该命名的原因您的变量如sqrt
和sqrt1
,非常容易出错,并且很难调试。而不是将sqrt1
重命名为有意义的东西,如returnedSqrt