将for循环更改为while循环

时间:2020-05-30 05:23:18

标签: java arrays loops for-loop while-loop

如何将for循环更改为while循环?

for (i = 0; i < arr.length; i++) {
            if (arr[i] == k) {
                found = true;
                break;
            }

        }

代码:

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;
        for (i = 0; i < arr.length; i++) {
            if (arr[i] == k) {
                found = true;
                break;
            }

        }
        if (found==true) {
            System.out.println((i+1));
        } else {
            System.out.println((arr.length + 1));
        }
    }
}

结构应为:

BEGIN
Input: k1, ..., kn, k;
found := FALSE;
WHILE NOT found AND „not all elements were viewed“ DO
„take the next element ki“;
found := (ki = k)
END (* WHILE *);
IF found THEN
Output: i
ELSE
OUtput: n + 1
END (* IF *)
END

5 个答案:

答案 0 :(得分:0)

等效的东西是:

int i = 0;

while (i < arr.length) {
    if (arr[i] == k) {
        found = true;
        break;
    }
    ++i;
}

答案 1 :(得分:0)

您可以执行以下操作:

int idx = 0;
while(idx < arr.length && a[idx] != k) {
    idx++
}

if(idx == arr.length) {
    // element not found, do something
} else {
    // element found
}

答案 2 :(得分:0)

尝试一下

int i = 0;
while(arr.length > i){
//code
++i;
}

答案 3 :(得分:0)

int i=0;
while (i < arr.length) {
    if (arr[i] == k) {
        found = true;
        break;
    }
    i++;
}

答案 4 :(得分:-1)

尝试此代码

import java.util.Scanner;

public 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 (i < arr.length) {

                if (arr[i] == k) {
                    found = true;
                    break;
                }
            i++;

            }


            if (found==true) {
                System.out.println((i+1));
            } else {
                System.out.println((arr.length + 1));
            }
        }
    }