0

我在这里学到了很多东西,但是有一个我无法找到的问题。

我们的最后一个任务要求我们使用 Java 中的嵌套 For 循环来显示菱形。

程序必须使用用户输入的符号并绘制以下内容:

    %
   % %
  % % %
 % % % %
% % % % %
 % % % %
  % % %
   % %
    %

到目前为止,我对一个半三角形进行了伪编码,然后我打算对三角形的倒数进行编码以完成另一侧,但在不增加所需符号数量的情况下,我无法得到任何其他信息:

    *
   **
  ***
 ****
*****

这是代码:

String symbol1; //User input, symbol to utilize

Scanner Keyboard = new Scanner (System.in); 
System.out.println("Enter the Symbol you wish to use: ");
symbol1 = Keyboard.next();

for (int i=0 ; i<5 ; i++)
{
    for (int k=5 ; k > i; k--)
    {
        System.out.print(" ");
    }
    for (int j=0; j<=i; j++)
    {
        System.out.print(symbol1);
    }
    System.out.println();
}



  }
}

非常感谢任何输入!

*编辑*

我想发布我的结束代码。这可能很简单,但我觉得很有成就感。希望它会在某些时候对我有所帮助,就像我在这里得到帮助一样!

大家加油。

导入 java.util.Scanner;

公共课 AlvaradoPgm04Bonus {

public static void main(String[] args) {

//使用用户输入的符号绘制菱形

String symbol1; //User input, symbol to utilize

Scanner Keyboard = new Scanner (System.in); //New scanner 
System.out.println("Enter the Symbol you wish to use: "); //Prompt user symbol input
symbol1 = Keyboard.next(); // Capture user input

    for (int i=0 ; i<5 ; i++){ //Begin for loop - increase until int is 5 long
        for (int k=8 ; k > i ; k--){ //nested loop - decrease space before int "i" (inverted invisible triangle)
            System.out.print(" "); //print space from nested loop before symbol1 
        }
        for (int j=0; j<=i; j++){ //nested loop - increase "j" until is equal to "i" 
            System.out.print(symbol1 + " "); //print symbol1 + space to form diamond
        }
        System.out.println(); //print above nested loop line by line

    } //begin new loop - inverted triangle

    for (int m = 4 ; m > 0 ; m--){ //decrease symbol by 1
        for (int n = 8 ; n >= m ; n--){ //match increase of space "invisible" triangle next to symbol to form upside down triangle
            System.out.print(" "); //print "invisible" triangle
        }
        for (int q = 0 ; q < m ; q++){ //nested loop to decrease symbol entered by user
            System.out.print(symbol1 + " "); //print inverted triangle made of user's input
        }

        System.out.println(); //print the loop in new line.

    }       //end loop

}//end main

} //结束类

4

3 回答 3

0

您可能想注意到,在预期的输出中,每个符号后面都有空格,因为您知道如何打印空格,并且我假设您知道在哪里打印符号,您应该很容易添加一个符号后的空格。然后你得到了钻石的一半,下半部分完全一样 在相反的方向如果你得到我的提示。

于 2013-10-09T13:15:33.147 回答
0

打包更多循环;

导入 java.util.Scanner;

公共类钻石{

public static void main(String[] args) {
    // TODO Auto-generated method stub
    Scanner in=new Scanner(System.in);
    int input=in.nextInt();
    int spac=input-1;
    int min=1;
    int max=input;
    for(int i=0;i<input;i++){
        for(int k=spac ; k>i;k--){
            System.out.print(" ");
        }
        for(int j=0;j<min;j++){
            System.out.print("*");
        }
        min+=2;
        System.out.println();
    }
    for(int m=input-1;m>0;m--){
        for(int n=spac;n>=m;n--){
            System.out.print(" ");
        }
        for(int q=0;q<m;q++){
            System.out.print("*");
        }
        System.out.println();
    }

}

}

我的输出大声笑 5 *







** *

于 2014-03-25T20:43:22.350 回答
0
package moreloops;

import java.util.Scanner;

public class Diamond {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    Scanner in=new Scanner(System.in);
    int input=in.nextInt();
    int spac=input-1;
    int min=1;
    int max=input;
    for(int i=0;i<input;i++){
        for(int k=spac ; k>i;k--){
            System.out.print(" ");
        }
        for(int j=0;j<min;j++){
            System.out.print("*");
        }
        min+=2;
        System.out.println();
    }
    for(int m=input-1;m>0;m--){
        for(int n=spac;n>=m;n--){
            System.out.print(" ");
        }
        for(int q=0;q<m;q++){
            System.out.print("*");
        }
        for(int s=0;s<m-1;s++){
            System.out.print("*");
        }
        System.out.println();
    }

}

}

这会有所帮助

于 2014-03-25T20:49:22.810 回答