Java基础 | “*”号画一个空心菱形

java零基础学习:

import java.util.Scanner;
public class Rhombus{
	public static void main(String[] args){
		/*打印一个菱形
		      *           
		     * *
		    *   *
		   *     *
		  *       *
		   *     *
		    *   *
             * *
              *
         //化繁为简:
         1.打印9行每行5*的矩形 
         2.上下对称,打印一半
         *              1个星
         ** 			2个星
         ***			3个星
         ****			4个星
         *****			5个星
         ****			4个星
         ***			3个星
         **				2个星
         *  			1个星
         分成前5行和后i-5行
         3.打印实心的
         *              1个星  4个空格
        *** 			3个星  3个空格
       *****			5个星  2个空格
      *******			7个星  1个空格
     *********			9个星  0个空格
      *******			7个星  1个空格
       *****			5个星  2个空格
        ***				3个星  3个空格
         *  			1个星  4个空格
         4.打印空心的
         *              首尾有星  
        * * 			首尾有星
       *   *			首尾有星
      *     *			首尾有星
     *       *			首尾有星
      *     *			首尾有星
       *   *			首尾有星
        * *				首尾有星
         *  			首尾有星
         
         先死后活:
         9行可以变成任意奇数,创建一个Scanner存储 int rows = myScanner.Int()
           			
		 */
		Scanner myScanner = new Scanner(System.in);
		System.out.print("输入一个奇数");
		int rows = myScanner.nextInt();
		int halfRows = (rows + 1) / 2;
		for(int i = 1;i <= rows;i++){
			if(i <= halfRows){//前5行
				for(int m = 1;m <= halfRows-i;m++){
					System.out.print(" ");
				}//打印空格
				for(int j = 1;j <= 2*i-1;j++){
					if(j == 1 || j == 2*i-1){
						System.out.print("*");
					}else{
						System.out.print(" ");
					}//只打印首尾星,其余打空格
				}//打印星
			}else{//后5行
				for(int n = 1;n <= i-halfRows;n++){
					System.out.print(" ");
				}//打印空格				
				for(int k = 1;k <= 2 * (halfRows - (i - halfRows)) - 1 ;k++){
					if(k == 1 || k == 2 * (halfRows - (i - halfRows)) - 1){
						System.out.print("*");
					}else{
						System.out.print(" ");
					}//只打印首尾星,其余打空格
				}//打印星
			}
			System.out.println("");//打印换行
		}
	}
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值