如何修改Java星号图案代码,实现* ** *****的预期输出?
解决星号图案输出问题
嘿,我来帮你搞定这个星号图案的调整!
当前你的代码逻辑是每行打印i个星号(i从1到3),所以第三行只会输出3个星号。要得到* ** *****的效果,我们需要让第三行打印全部5个星号,前两行保持原有规则即可。
只需要修改if判断的条件,把原来的j<=i改成**j<=i || i == 3**就可以了。这个条件的逻辑很清晰:
- 当行数
i是1或2时,只在j小于等于i的位置打印星号(保持前两行1个、2个星的效果) - 当行数
i是3时,不管j取值是多少,都打印星号(也就是第三行直接输出5个星)
修改后的完整代码如下:
public class Star { public static void main(String[] args) { int i,j; for(i=1;i<=3;i++) { for(j=1;j<=5;j++) { if(j<=i || i == 3) { // 这里是修改的核心条件 System.out.print("*"); } else { System.out.print(" "); } } System.out.println(); } } }
运行这段代码后,输出就会完全符合你的预期:
* ** *****
(注:前两行星号后的空格是为了保持每行5个字符的对齐宽度,如果你不需要空格只需要纯星号,可以调整内层循环的终止条件,但从你的描述来看,对齐的效果应该是你想要的。)
内容的提问来源于stack exchange,提问作者Abhishek Kumar
相关产品推荐
相关产品推荐

