You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

编写单循环Java程序:输入1-9,输出指定奇偶排列目标序列

Java单循环实现指定数字序列输出

没问题,这有两种仅用单个循环就能满足你需求的Java方案,我给你详细拆解下思路:

方案一:通过循环索引计算目标元素

这种方法不需要额外存储,直接通过循环的位置索引来定位要输出的数字,效率很高:

public class NumberSequencePrinter {
    public static void main(String[] args) {
        int[] numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9};
        StringBuilder result = new StringBuilder("{");
        
        // 仅用一个for循环遍历9次,对应9个目标元素
        for (int i = 0; i < numbers.length; i++) {
            int targetNum;
            if (i < 5) {
                // 前5次循环:取原数组中的奇数(索引0、2、4、6、8)
                targetNum = numbers[2 * i];
            } else {
                // 后4次循环:取原数组中逆序的偶数(索引7、5、3、1)
                targetNum = numbers[7 - 2 * (i - 5)];
            }
            result.append(targetNum).append(", ");
        }
        
        // 移除末尾多余的逗号和空格,补全格式
        if (result.length() > 1) {
            result.setLength(result.length() - 2);
        }
        result.append("}");
        
        System.out.println(result);
    }
}

思路说明:

  • 我们的目标序列分为两部分:前5个是原集合从左到右的奇数,后4个是原集合从右到左的偶数。
  • 循环索引i从0到8:
    • 当i < 5时,原数组的奇数正好在2*i的索引位置(0→1,2→3,…,8→9),直接取值即可。
    • 当i >=5时,原数组的偶数在索引1、3、5、7,逆序后就是7、5、3、1。通过7 - 2*(i-5)的计算,能精准定位到这些逆序的偶数索引。

方案二:遍历收集+逆序拼接

这种写法更直观,适合新手理解,同样只用一个循环:

public class NumberSequencePrinter {
    public static void main(String[] args) {
        StringBuilder oddPart = new StringBuilder();
        StringBuilder evenPart = new StringBuilder();
        
        // 单个循环遍历1到9的所有数字
        for (int num = 1; num <= 9; num++) {
            if (num % 2 != 0) {
                // 奇数直接追加到结果的前半部分
                oddPart.append(num).append(", ");
            } else {
                // 偶数插入到偶数部分的开头,自动实现逆序
                evenPart.insert(0, num).insert(0, ", ");
            }
        }
        
        // 拼接两部分并整理格式
        String result = "{" + oddPart.toString() + evenPart.substring(2) + "}";
        System.out.println(result);
    }
}

思路说明:

  • 遍历1到9的每个数字,遇到奇数直接拼接到奇数结果串里;
  • 遇到偶数时,每次插入到偶数串的最开头,这样遍历完所有偶数后,偶数串自然就是逆序的(比如先处理2→"2",再处理4→"4, 2",接着6→"6, 4, 2",以此类推);
  • 最后把奇数串和处理后的偶数串拼接,调整格式就得到目标序列。

两种方案都严格遵循了“仅用一个循环”的要求,运行后都会输出你要的{1,3,5,7,9,8,6,4,2}。

内容的提问来源于stack exchange,提问作者Naman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 03:41:54