You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java打印图案时如何去除两个图案间的多余两行空行?

问题分析与解决

你的代码存在两个问题:一是打印的星号数量和目标不符,二是两个图案之间多出两行空行,原因如下:

  1. 星号数量错误:原代码中col <= row-1的条件会让每行少打印一个星号(比如row=4时只输出3个星号),和你想要的每行row个星号的目标不符。
  2. 多余空行问题:当row=1时,col <= row-1等价于col <=0,内层循环不会执行,此时System.out.println()会打印空行。第一个循环的最后一次迭代(row=1)和第二个循环的第一次迭代(row=1)各输出一个空行,这就是中间多出两行空行的原因。

修正后的代码

static void k(){
    Scanner sc= new Scanner(System.in);
    System.out.println("no.of rows");
    int a = sc.nextInt();

    // 打印上半部分:从a个星递减到1个星
    for(int row=a; row>=1; row--){
        for (int col=1; col <= row; col++){ // 修正条件为col <= row
            System.out.print(" * ");
        }
        System.out.println();
    }
    
    // 打印中间的一个空行(如果需要多个空行可以多加几个System.out.println())
    System.out.println();
    
    // 打印下半部分:从1个星递增到a个星
    for(int row=1; row<=a; row++){
        for (int col=1; col <= row; col++){ // 修正条件为col <= row
            System.out.print(" * ");
        }
        System.out.println();
    }
}

说明

  • 把内层循环的条件从col <= row-1改为col <= row,确保每行打印row个星号,匹配目标图案。
  • 去掉原循环中产生空行的无效迭代,改为在两个图案之间手动打印一个空行,精准控制空行数量。

内容的提问来源于stack exchange,提问作者SAURABH7DEOKATE

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 19:05:46