试图在java中创建一个正方形,但星星不断减半
刚开始学习java课程,一直在尝试这样做,但有点挣扎。需要使用to方法制作一个6乘6的正方形(之前的方法是只制作一行6*) 任何关于我哪里出了问题的建议都会令人惊讶试图在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
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
InttoonSterrenVierkan
您可以增加++mpantal
。所以每次你都少印一颗星星。注释掉那句话,然后试试看。你不需要Toonrijsteren(安塔尔)代码>在main中。为了详细说明@WJS所说的,在for循环中,i++已经在进行递增。当您调用toonRijSterren(MPANTAL)
时,每次都会从一个更高的数字开始,这样您的while循环每次运行的次数就会更少。@primeld非常感谢您的解释,现在可以正常工作了!这可能是一个递归练习。是的,这是一个他们想让我使用两种方法的练习