为什么我的代码没有执行break语句?

时间:2014-10-20 14:09:15

标签: java break

我正在编写一个程序,我必须写出我给出的数字,直到我得到42号。

例如:

输入

5
6
4
42
1
0

输出

5
6
4

到目前为止,我已经尝试过这个:

package com.logical01;

import java.util.Scanner;

public class MainProgram {
    public static void main(String[] args) {

        int[] array = new int[100];
        Scanner in = new Scanner(System.in);

        System.out.println("Enter the number of elements: ");
        int n_Elements = in.nextInt();

        System.out.println("Enter the values now: ");

        for (int i = 0; i < n_Elements; i++) {
            array[i] = in.nextInt();
        }

        for (int i = 0; i < n_Elements; i++) {
            if (i == 42) {
                break;
            }
            System.out.println("\n"+array[i]);
        }
    }
}

然而,这个程序不起作用;它会将相同的值写回(而不是在有42时停止)。

2 个答案:

答案 0 :(得分:3)

您需要从

更改
if(i == 42)

(if array[i] == 42) 

i在迭代时保存

答案 1 :(得分:1)

您需要将循环更改为:

for(int i=0; i<n_Elements; i++){
    if(array[i]==42){
        break;
}

这是因为你想迭代数组并检查索引i的值是否为42,

e.g。 array[4] = {1,2,42,3};

然后循环遍历数组并且:

array[0] == 42 false

array[1] == 42 false

因此

array[2] == 42 true - &gt; break;