Java打印数字与#交替阶梯图案代码输出异常问题求助
问题排查与解决方案
预期输出目标
要打印的图案如下:
1 1# 1#2 1#2# 1#2#3 1#2#3#
现有代码问题分析
- 问题1:定义的
q变量全程为固定值2未做递增,所以第5行第5位(奇数位置)本该输出3,实际输出了2 - 问题2:输出
#时额外带了空格,导致每一行的#后都有多余空格,和预期无空格的格式不符 - 问题3:奇数位置的数字计算逻辑错误,没有按规律输出递增的整数,反而用了固定判断分支,逻辑完全不符合要求
修复方案
不需要单独定义q变量,奇数位置的数字可以直接通过公式(j + 1) / 2计算得到,同时输出#时去掉多余空格即可。
修复后完整代码
public class Main { public static void main(String args[]) { // 外层循环控制行数,共6行 for (int i = 1; i <= 6; i++) { // 内层循环控制每一行输出的字符数 for (int j = 1; j <= i; j++) { if (j % 2 != 0) { // 奇数位输出对应数字:j=1→1,j=3→2,j=5→3 System.out.print((j + 1) / 2); } else { // 偶数位输出#,去掉多余空格 System.out.print("#"); } } // 每一行输出完换行 System.out.println(); } } }
输出验证
运行修复后的代码,得到的结果和预期完全一致:
1 1# 1#2 1#2# 1#2#3 1#2#3#
内容的提问来源于stack exchange,提问作者Onkar Bhise
相关产品推荐
相关产品推荐

