以下程序应该计算一个数字的平方(与上一个问题不同的程序)我尝试这样做,因为之前的程序使用bufferedReader来尝试使用扫描程序。例如,当输入2作为数字时,它输出1.0作为该数字的平方值。任何帮助将非常感激!顺便说一下,我不能越过第一个屏幕,除非我因为某种原因将每一行分开4次。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
System.out.println("enter number");
Scanner in=new Scanner(System.in);
System.out.println("the sqare of that number is "+sqrt(in.nextInt()));
}
static double sqrt(double x){
double result;
double i=0;
if(x<0)
result=-1;
else{
while (true){
if((i*i)>x)
break;
i++;
}
i=i-1;
result= (i * i);
result= (i * i);
}
return result;
}
}
答案 0 :(得分:2)
你为什么要回归 result
? i
变量将平方根保存在while
- 循环的末尾,尝试返回i
。然后,第一个if
- 语句可以简单地变为:
if (x < 0)
return -1;
你可以完全摆脱 result
。
我不完全明白你的目标是什么。您的while
- 循环计算x
的平方根 - 这是什么意思?为什么不只是return x*x
?实际上,您甚至不需要(名称相当差的)sqrt
方法:
System.out.print("Enter a number: ");
Scanner in = new Scanner(System.in);
int n = in.nextInt();
System.out.println("The sqare of that number is " + (n*n));
in.close();
答案 1 :(得分:0)
当循环为if ( i > x) break;
时,它看起来像你想要的。然后结果应该是正确的,因为你在while循环之后从i减去1 - 使它等于x。因此,result = i * i
是x的平方,因为i == x。