利用嵌套循环打印菱形及空心菱形

利用嵌套循环打印菱形及空心菱形

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

思路分析:将菱形分为两个等腰三角形
​ 分别是上等腰三角形和下等腰三角形
​ 其中上等腰三角形的外侧循环所对应的行数为:length/2+1
​ 下等腰三角形的外侧循环的行数为:length/2

上等腰三角形

i 空格 星星
0 3 1
1 2 3
2 1 5
3 0 7
i (length/2+1)-i-1 2*i+1

下等腰三角形

i 空格 星星
0 1 5
1 2 3
2 3 1
i i+1 2*(length/2 -i- 1)+1

​ public static void main(String[] args) {
​ Scanner input = new Scanner(System.in);
​ System.out.println(“请输入菱形的行数(奇数):”);
​ int length = input.nextInt();
​ int sup = length/2+1;//sup上等腰三角形的行数
​ //外测循环控制行数
​ for(int i = 0 ;i ​ //内侧循环控制空格
​ for(int j = 0;j < sup - i -1 ; j++){
​ System.out.print(" “);
​ }
​ //内侧循环控制星星,打印原本的“
​ for(int j = 0 ; j < 2
i+ 1; j++){
​ //仅在一行的开头和末尾打印*
​ if(j == 0|| j == 2i){
​ System.out.print("
”);
​ }else{
​ System.out.print(" “);
​ }
​ }
​ System.out.println();
​ }
​ int sub = length/2;
​ //外测循环控制行数
​ for(int i = 0 ; i < sup ;i++){
​ // //内侧循环控制空格
​ for(int j = 0 ;j< i+1 ;j++){
​ System.out.print(” “);
​ }
​ 内侧循环控制星星
​ for(int j = 0 ; j< 2*(sub - i - 1)+1;j++){
​ if( j == 0 || j == 2*(sub - i - 1)){
​ System.out.print(”*");
​ }else{
​ System.out.print(" ");
​ }
​ }
​ System.out.println();
​ }
​ }
}

你可能感兴趣的:(利用嵌套循环打印菱形及空心菱形)