-2

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

2 回答 2

2

你为什么回来result?该i变量在循环结束时保存平方根while,尝试返回i. 然后,第一个if语句可以简单地变成:

if (x < 0)
    return -1;

你可以完全摆脱result


我不完全理解你的目标是什么。你的while-loop 计算平方根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();
于 2013-03-06T22:07:47.313 回答
0

看起来你想要什么 while 循环是if ( i > x) break;. 那么结果应该是正确的,因为在 while 循环之后从 i 中减去 1 - 使其等于 x。因此,result = i * i是 x 的平方,因为 i == x。

于 2013-03-06T22:20:16.963 回答