2014-10-20 47 views
-5

我正在寫一個程序,我必須寫回我給直到我得到數42爲什麼我的代碼不執行break語句?

例如數字:

輸入

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時停止)。

+4

'如果(I == 42)'應該是'如果(陣列[I] == 42)'。 – Maroun 2014-10-20 14:10:27

+0

請回答這個評論..您的幫助表示感謝! – 2014-10-20 14:11:42

+0

@MarounMaroun - 沒有看到你的評論:)你可以ahve發佈它作爲答案:) – TheLostMind 2014-10-20 14:13:08

回答

3

你需要從

if(i == 42) 

改變

(if array[i] == 42) 

i持有而迭代。

1

您需要將循環改成這樣:

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

這是因爲你想通過數組進行迭代,並檢查是否在指數i值是42,

例如array[4] = {1,2,42,3};

然後通過陣列的循環迭代和:

array[0] == 42 false

array[1] == 42 false

array[2] == 42 true因此 - >break;

相關問題