试图在java中创建一个正方形,但星星不断减半

试图在java中创建一个正方形,但星星不断减半,java,loops,methods,Java,Loops,Methods,刚开始学习java课程,一直在尝试这样做,但有点挣扎。需要使用to方法制作一个6乘6的正方形(之前的方法是只制作一行6*) 任何关于我哪里出了问题的建议都会令人惊讶 public class loopsLauncher { //Sterrenrij & SterrenVierKant public static void main(String[] args) { //print * 8 times using a method and loop

刚开始学习java课程,一直在尝试这样做,但有点挣扎。需要使用to方法制作一个6乘6的正方形(之前的方法是只制作一行6*)

任何关于我哪里出了问题的建议都会令人惊讶

public class loopsLauncher {
    //Sterrenrij & SterrenVierKant
    public static void main(String[] args) {
        //print * 8 times using a method and loop
        int aantal = 0;
        toonRijSterren(aantal);
        toonSterrenVierkant(aantal);
    }

    public static void toonRijSterren(int mpAantal) {
        while (mpAantal < 6) {
            System.out.print(" * ");
            mpAantal++;
        }
    }

    public static void toonSterrenVierkant(int mpAantal) {
        for (int i = 0; i < 6; i++) {
            ++mpAantal;
            System.out.println();
            toonRijSterren(mpAantal);
        }
    }
}
公共类loopsLauncher{
//斯特伦里杰和斯特伦维耶坎特酒店
公共静态void main(字符串[]args){
//使用方法和循环打印*8次
int aantal=0;
图恩里斯特伦(安塔尔);
图恩斯特伦维耶坎特(安塔尔);
}
公共静态无效toonRijSterren(int mpAantal){
而(mpAantal<6){
系统输出打印(“*”);
mpantal++;
}
}
公共静态无效Toonsterrenvirerkant(int MPANTAL){
对于(int i=0;i<6;i++){
++姆潘塔尔;
System.out.println();
toonRijSterren(Mpantal);
}
}
}

提前谢谢

为什么不直接使用嵌套循环呢

int sqSize = 6;
for (int i = 0; i < sqSize; i++) {
    for (int j = 0; j < sqSize; j++) {
        System.out.print(" *");
    }
    System.out.print("\n");
}
intsqsize=6;
对于(int i=0;i
我不懂荷兰语,所以我用英语写了名字。希望你能理解

如果需要递归,请尝试下面的代码。该代码适用于矩形和正方形

第一个方法(showRowStars)只是执行for循环,而不是执行依赖于mpAantal为0的while循环

对于第二种方法(showRowsOfStars),它将行数作为输入。它调用showRowStars方法来打印一行星星,然后调用自己,除了少一行之外。当行数(numRows)达到0时,它停止

如果不需要矩形,可以调用showStarSquare方法,该方法只调用showsorwsofstars方法,但只需要一个参数,因为两个维度相同

public class loopsLauncher {
    //Sterrenrij & SterrenVierKant
    public static void main(String[] args) {
        //print * 8 times using a method and loop
        showRowStars(6);
        showRowsOfStars(6, 6);
    }

    public static void showRowStars(int numStars) {
        for (int i = 0; i < numStars; i ++) {
            System.out.print(" * ");
        }
    }

    //numStars is stars per row
    public static void showRowsOfStars(int numRows, int numStars) {
        if (numRows == 0) return;
        showRowStars(numStars);
        showRowsOfStars(numRows - 1, numStars);
    }

    public static void showStarSquare(int numStars) {
      showRowsofStars(numStars, numStars);
   }
}
公共类loopsLauncher{
//斯特伦里杰和斯特伦维耶坎特酒店
公共静态void main(字符串[]args){
//使用方法和循环打印*8次
明星(6);
明星(6,6);
}
公共静态无效显示rowstars(int numStars){
for(int i=0;i
Int
toonSterrenVierkan
您可以增加
++mpantal
。所以每次你都少印一颗星星。注释掉那句话,然后试试看。你不需要
Toonrijsteren(安塔尔)在main中。为了详细说明@WJS所说的,在for循环中,i++已经在进行递增。当您调用
toonRijSterren(MPANTAL)
时,每次都会从一个更高的数字开始,这样您的while循环每次运行的次数就会更少。@primeld非常感谢您的解释,现在可以正常工作了!这可能是一个递归练习。是的,这是一个他们想让我使用两种方法的练习