我在制作静态方法方面不是很有经验……我想要一些练习,但遇到了一些问题。我正在尝试制作一个程序,您可以在其中输入一个数字并打印出所有小于 b 的方 block 。例如,如果您输入 100,它会返回 0、1、4、9、16、25、36、49、64、81。 不过,我遇到了错误。
- 参数 getSquares 的非法修饰符;只允许使用 final。这是上线 public static double getSquares(double b)
-当我尝试执行 Squares.getSquares(100) 时,方法 getSquares(int) 未定义为 Squares 类型;...我猜这是因为我的第一个问题。请帮助我,我知道静态方法很重要,但我不知道如何制作它们。
package Testers;
import java.util.Scanner;
public class Squares
{
public static void main(String[] args)
{
Squares.getSquares(100);
public static double getSquares(double b)
{
double sqrtNum=Math.sqrt(b);
int i=0;
while(i<sqrtNum)
{
sqrtNum=Math.pow(i,2);
System.out.print(sqrtNum+" ");
i++;
}
}
}
}
最佳答案
您不能在方法内声明方法 - 格式化您的代码,这样会更清楚。示例:
package Testers;
import java.util.Scanner;
public class Squares {
public static void main(String[] args) {
Squares.getSquares(100);
}
public static double getSquares(double b) {
double sqrtNum = Math.sqrt(b);
int i = 0;
while(i < sqrtNum) {
sqrtNum = Math.pow(i, 2);
System.out.print(sqrtNum + " ");
i++;
}
}
}
此外,getSquares()
中没有返回值 - 看起来您打算将其设为 void
。
最后,这个 while
循环:
int i = 0;
while(i < sqrtNum) {
// code
i++;
}
可以简化为这个for
循环:
for (int i = 0; i < sqrtNum; i++) {
// code
}
关于java - 我在编写静态方法时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26491574/