Java实现字符串首尾交替打印,for循环打印语句无输出求助
问题原因与解决方案
你的循环完全没有执行,核心问题出在循环条件的逻辑错误上:
- 先看数值计算:字符串
"abca"的长度是4,string.length()/2+1的结果是4/2+1=3。 - 循环初始值为
i=0,j=3,而你设置的循环条件是i<3 && j>3——j的初始值是3,j>3直接不成立,整个&&逻辑判断为false,循环直接跳过,自然没有任何输出。
修正方案
根据你“依次打印首字符、尾字符”的需求,应该把循环条件改成i <= j,这样能覆盖所有首尾配对的场景(包括字符串长度为奇数时的中间单个字符):
public class JavaOOP { public static void main(String args[]){ String string = "abca"; // 修改循环条件为i <= j,确保所有配对场景都能执行 for(int i=0,j=string.length()-1;i <= j;i++,j--){ System.out.println(string.charAt(i)+ " " + string.charAt(j)); } } }
运行后会输出:
a a b c
如果你的需求是只打印成对的字符(不重复打印中间单个字符),可以把条件改成i < j,效果和上面一致(因为当前字符串长度为偶数);如果是长度为5的字符串,就会自动跳过中间的单个字符。
内容的提问来源于stack exchange,提问作者Aasem Shoshari
相关产品推荐
相关产品推荐

