Java简单循环未按预期运行,输出为空问题排查
问题分析与解决
你的代码问题出在内层循环的条件设置错误:
内层循环中ch从65(对应字符'A')开始,而循环条件是ch <= line。当line=1时,65远大于1,条件不成立,内层循环根本不会执行;后续line=2、3、4时,65依然远大于这些数值,所以每一行都没有字符输出,只有四次换行,最终看起来输出为空。
要实现你预期的输出,需要让每一行输出对应数量的连续字符,且字符依次递增。可以通过以下两种方式修正:
方式一:用变量跟踪当前字符
int currentChar = 65; // 从'A'开始 for (int line = 1; line <= 4; line++) { // 每一行输出line个字符 for (int i = 0; i < line; i++) { System.out.print((char) currentChar); currentChar++; // 输出后切换到下一个字符 } System.out.println(); }
方式二:计算每行的起始字符
通过数学公式计算每一行的起始字符位置:前line-1行总共输出了1+2+...+(line-1) = line*(line-1)/2个字符,所以当前行的起始字符是65 + line*(line-1)/2:
for (int line = 1; line <= 4; line++) { int startChar = 65 + line * (line - 1) / 2; // 输出line个连续字符 for (int i = 0; i < line; i++) { System.out.print((char) (startChar + i)); } System.out.println(); }
两种方式运行后都会得到你预期的输出:
A BC DEF GHIJ
内容的提问来源于stack exchange,提问作者Akshat Mishra
相关产品推荐
相关产品推荐

