缺少返回语句(Java):计算前100个五边形数)

缺少返回语句(Java):计算前100个五边形数),java,Java,我试图用一些方法找到前100个五边形数。下面是我的代码,但是,我不断得到缺少的返回语句。我肯定我没有把return语句放在适当的位置,而且我也不知道这个过程是否正确。因此,我希望得到指导。非常感谢。 PS:还没有学会数组,这不是家庭作业 public class PentagonNumber { public static void main(String[] args) { int numberperline = 10; int n = 1;

我试图用一些方法找到前100个五边形数。下面是我的代码,但是,我不断得到缺少的返回语句。我肯定我没有把return语句放在适当的位置,而且我也不知道这个过程是否正确。因此,我希望得到指导。非常感谢。 PS:还没有学会数组,这不是家庭作业

public class PentagonNumber {
    public static void main(String[] args) {
        int numberperline = 10;
        int n = 1;
        int count = 0;
        int pent = getpentagonnumber(n);
        count++;

        if (count % numberperline == 0)
            System.out.println();
        else System.out.print(pent + "\t");
    }

    public static int getpentagonnumber(int x) {
        for (int count = 0; count < 100; count++) {
            for (x = 1; x <= 100; x++) {
                int result;
                result = x * (3 * x - 1) / 2;
                return result;
            }
        }
    }
}
公共类五边形编号{
公共静态void main(字符串[]args){
整数线=10;
int n=1;
整数计数=0;
int pent=getpentagonnumber(n);
计数++;
如果(计数%numberline==0)
System.out.println();
else系统输出打印(pent+“\t”);
}
公共静态int getpentagonnumber(int x){
用于(int count=0;count<100;count++){

for(x=1;x在for循环中只有一个返回值。您可能希望它是:

public  static  int getpentagonnumber(int x ){
   int  result = 0;
   for (int count=0; count<100; count++){
        for (x=1;x<=100;x++){         
            result = x*(3*x-1)/2;
        }
   } //this was missing
   return result; 
}
公共静态int getpentagonnumber(int x){
int结果=0;

对于(int count=0;count,您的代码应更改如下:

public class PentagonNumber {
    public static void main(String[] args) {
        int numberperline = 10;
        //int n = 1; // you do not need N
        //int count = 0; // you do not this either
        for (x = 0; x < 100; x++) { // moved
            int pent = getpentagonnumber(x+1); // +1 so it goes 1::100
            //count++;
            if (x % numberperline == 0)
                System.out.println();
            //else // you were skipping every tenth result.
            System.out.print(pent + "\t");
        }// close for
    }

    public static int getpentagonnumber(int x) {
        //for (int count = 0; count < 100; count++) { // moved
            //for (x = 1; x <= 100; x++) { // removed
                int result; // no need to declare and then calculate
                result = x * (3 * x - 1) / 2; // but not wrong either.
                return result;
            //}
        //}
    }
}
公共类五边形编号{
公共静态void main(字符串[]args){
整数线=10;
//int n=1;//您不需要n
//int count=0;//您也不需要这样做
对于(x=0;x<100;x++){//
int pent=getpentagonnumber(x+1);//+1所以它变成了1::100
//计数++;
如果(x%numberperline==0)
System.out.println();
//否则//你会跳过每十个结果。
系统输出打印(pent+“\t”);
}//接近
}
公共静态int getpentagonnumber(int x){
//对于(int count=0;count<100;count++){//moved

//对于(x=1;x是的,我刚刚添加了缺少的“}”,但我将其更改为原始意图。谢谢!这还不是全部;您还需要初始化它;)@谢谢你,但是代码的结果是错误的changes@pumpin26那么这就意味着你的程序中有一个逻辑错误code@OriLentz此代码仅返回第100个数字…for
的两个
循环都是无用的。
int count
不在任何地方使用,而
for(x=1;代码外观不规则。糟糕的、不一致的格式会影响理解,使代码难以阅读,并鼓励出现此类错误。我建议您更多地注意格式设置。在结果计算中,您还将遇到整数除法问题。此代码是错误的。如果您想要得到100个数字,则需要校准l一个100次生成1个数字的方法,或者调用一个返回存储在列表或向量中的100个数字的方法。@duffymo。谢谢你的格式注释。你能澄清“整数除法问题”吗。另外,.Thank you@Mindwin。它应该是(x+1)而不是(n+1)