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

如何用单个for循环在Java中根据布尔标志正反向打印数组

用单个for循环实现数组正反向打印

给定数组 Arr = {"apple" , "orange" , "pineapple"},要求当布尔标志flag为true时反向打印数组(输出pineapple、orange、apple),为false时正向打印(输出apple、orange、pineapple)。目前已有如下while循环实现的代码,现需要改用单个for循环实现:

public static void printArrayElements(boolean flag , String arr[]) {
        int i=0;
        int arrSize = arr.length;
        if(flag == true) {
            i = arrSize-1;
        }else {
            i = 0 ;
        }
        while( flag ? i >= 0 : i <arrSize ) {
            System.out.println(arr[i]);
            if(flag) {
                i--;
            }else {
                i++ ;
            }
        }
    }

单个for循环实现方案

直接把原while循环中的初始化、循环条件、索引步进逻辑整合到for循环的三个表达式中,代码如下:

public static void printArrayElements(boolean flag, String arr[]) {
    int arrSize = arr.length;
    for (int i = flag ? arrSize - 1 : 0; 
         flag ? i >= 0 : i < arrSize; 
         i = flag ? i - 1 : i + 1) {
        System.out.println(arr[i]);
    }
}

逻辑说明

  • 初始化表达式:根据flag确定循环起始索引,true时从数组末尾(arrSize-1)开始,false时从数组开头(0)开始
  • 条件判断表达式:true时判断索引是否≥0(确保反向循环不越界),false时判断索引是否<arrSize(确保正向循环不越界)
  • 步进表达式:true时索引递减(实现反向遍历),false时索引递增(实现正向遍历)

该实现完全等价于原while循环的功能,仅用单个for循环完成需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 14:08:29