程序错误地计算数字的平方

时间:2013-03-06 22:04:08

标签: java

以下程序应该计算一个数字的平方(与上一个问题不同的程序)我尝试这样做,因为之前的程序使用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;
  }
}

2 个答案:

答案 0 :(得分:2)

你为什么要回归resulti变量将平方根保存在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。