java - 我在编写静态方法时遇到问题

标签 java

我在制作静态方法方面不是很有经验……我想要一些练习,但遇到了一些问题。我正在尝试制作一个程序,您可以在其中输入一个数字并打印出所有小于 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/

相关文章:

java - 如何返回字符串中的数字循环? [Java]

java - 在数据库中使用 Hibernate 和 H2 时出错

java - 无法使用 Fabric Android 获取 Twitter 中的关注者列表

Java:尝试右键单击 JTable 弹出窗口来打开文本文件

java - 向现有 JFrame 添加确定/取消按钮

java - 通过 Java SDK 进行 TFS 2015 版本管理?

java - Hello World Java教程deployNodes失败

java - 解密Android RSA : Invalid Ciphertext Exception

java - 数据库不存储尖括号之间的内容 "<>"

java - 通过 sardine-webdav -jcr 添加 zip 文件