Java中for循环的print语句删除空格后输出结果不同是什么原因
问题解答
你观察到的输出差异本质是字符串字面量的内容差异导致的,和for循环逻辑、println方法的执行规则无关,具体原因如下:
- 带空格的写法中,字符串字面量
"this number is a multiple of 2 "末尾自带2个半角空格,字符串和后续的number1变量拼接时,空格会保留在固定文本和数字之间,最终输出的每行内容里,固定文本末尾的「2」和输出的数字之间会有2个空格的间隔。 - 删除空格后的写法中,字符串字面量
"this number is a multiple of 2"末尾没有多余空格,和number1拼接后,固定文本的最后一个字符「2」会和变量的数字直接相连,没有间隔。
两种写法的实际输出对比如下(以number1=2的场景为例):
带空格的输出:
this number is a multiple of 2 2无空格的输出:
this number is a multiple of 22
如果你的预期是固定文本和数字之间保留1个空格间隔,只需把字符串修改为"this number is a multiple of 2 "(末尾保留1个空格)即可。
额外补充说明
你当前代码的注释要求是「每次数字加2,输出2的倍数」,但for循环的迭代逻辑写的是number1++(每次加1),实际会输出2到20的所有整数,不符合注释预期,修改为number1 += 2即可正确输出2、4、6……20的2的倍数序列。
内容的提问来源于stack exchange,提问作者Raghavendra
相关产品推荐
相关产品推荐

