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

如何将Java数组查找中的for循环改写为while循环?

改写Java查找循环为While循环(遵循指定伪代码)

没问题,我帮你把原来用于查找目标元素的for循环改成符合给定伪代码结构的while循环,同时保证逻辑和原代码完全一致。下面是改写后的完整代码:

import java.util.Scanner;
class Algorithmus {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        System.out.println("Geben sie den gesuchten Wert ein: ");
        int k = s.nextInt();
        System.out.println("Geben sie die Länge des Arrays ein: ");
        int n = s.nextInt();
        int arr[] = new int[n];
        int i = 0;
        System.out.println("Geben sie die Werte ein:");
        for(i = 0;i<n;i++){
            arr[i] = s.nextInt();
        }
        
        boolean found = false;
        i = 0; // 重置索引变量,准备开始查找流程
        // 严格遵循指定伪代码结构的while循环
        while (!found && i < arr.length) {
            int ki = arr[i]; // 取下一个待检查的元素
            found = (ki == k); // 判断当前元素是否等于目标值
            if (!found) {
                i++; // 未找到则移动到下一个元素
            }
        }
        
        if (found) {
            System.out.println((i+1));
        } else {
            System.out.println((arr.length + 1));
        }
        s.close(); // 关闭Scanner,避免资源泄漏
    }
}

关键改动说明:

  • 重置了索引变量i为0:因为之前用于填充数组的for循环已经把i带到了数组末尾的位置,必须重置才能从第一个元素开始查找。
  • 严格匹配伪代码逻辑:while循环的条件同时检查!found(未找到目标)和i < arr.length(未遍历完所有元素),完全符合伪代码的要求。
  • 保持原输出逻辑一致:只有当未找到目标时才递增i,这样找到目标时i会停留在对应索引的位置,输出i+1就能得到和原代码相同的结果;如果遍历完所有元素都没找到,i会等于数组长度,输出arr.length + 1也和原逻辑一致。
  • 增加了Scanner关闭操作:这是Java IO操作的良好实践,避免不必要的资源占用。

内容的提问来源于stack exchange,提问作者M. Eichhorn

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 20:42:28