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

while循环实现倒星型图案异常求助:仅首行输出星号其余行空白

倒星型图案while循环问题排查与修复

你的代码问题出在变量s没有每次外层循环都重置。第一次循环结束后s已经变成了6,后面的内层循环条件永远不满足,自然打不出星号。

修正方法很简单,把s的初始化移到外层while循环里面,每次开始打印新一行时,都把s重新设为1:

Scanner sc = new Scanner(System.in);
System.out.println("Please enter your input : ");
int n = sc.nextInt();
int i = 1;
while(i<=n) {
    int s = 1; // 把s的初始化移到这里,每次外层循环都重置
    while(s<=n-i+1) {
        System.out.print("*");
        s++;
    } 
    System.out.println(); 
    i++; 
}

为什么这样改?因为每一行需要打印的星号数量是n-i+1,每次打印新行都得从第一个星号开始计数,所以s必须每次都从1重新开始。原来的写法里s只初始化一次,用完后就一直大于后续行所需的数量,内层循环根本不会执行,导致后面的行全是空白。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 18:16:00