我在制作静态方法方面经验不足......我想要一些练习,但我遇到了一些问题。我试图制作一个你输入数字的程序,然后打印出小于b的所有正方形。例如,如果输入100,则返回0,1,4,9,16,25,36,49,64,81。 不过,我收到了错误。
- 当我尝试做Squares.getSquares(100)时,方法getSquares(int)未定义Square类型; ...我猜测这是因为我的第一个问题。请帮助我,我知道静态方法很重要,但我不知道如何制作它们。
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++;
}
}
}
}
答案 0 :(得分:7)
你不能在方法中声明一个方法 - 格式化你的代码,它更清楚。例如:
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
}
答案 1 :(得分:6)
如果您想将静态方法作为Squares类的方法,则不应该在main()中。它应该是Squares而不是main,例如:
public class Squares
{
public static void main(..) {...}
public static double getSquares(...) {...}
}
答案 2 :(得分:2)
您在另一种方法中声明了您的方法,但该方法不起作用。把它放在外面它应该是好的。
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++;
}
}
}
答案 3 :(得分:1)
在你的getSquares方法中,你需要一个return语句。