2014-01-24 21 views
0

我想讓我的數組取消當用戶輸入0,但它似乎要取消任何輸入的數字。不能讓我的數組取消0

import java.util.Scanner; 

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

    Scanner scan= new Scanner(System.in); 
    int count=0; 
    double[] nums= new double[100]; 

    for(int i=0;i<nums.length;++i) 
    { 
     nums[i]= scan.nextDouble(); 
     nums[i]=i; 
     if (i == 0){ 
      break;} 
     count++; 
     } 
} 
} 

回答

5

您正在測試i(您的循環計數器),而不是用戶實際輸入的值。您可能想要:

nums[i] = scan.nextDouble(); 
if (nums[i] == 0) { 
    break; 
} 

改爲。此外,您的nums[i] = i行完全垃圾無論DID獲得輸入,並用循環計數器值替換它,你基本上存儲你的循環值。這使用戶的輸入完全沒有意義。

+0

好了,感謝的人。那就是訣竅。 –

+0

如果這是正確的答案,您需要將其標記爲這樣。給這個人信用。 – Rainbolt

0

你的問題在於你的比較停止該程序。您正在使用保持循環運行多少次的變量。由於該變量從0開始,無論何時輸入任何值,它總是會停止程序,因爲您將該程序與該計數器進行比較。

相反,你應該比較哪些值存儲在陣列

num[i] == 0 


這應該工作,只要你想:

import java.util.Scanner; 

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

    Scanner scan= new Scanner(System.in); 
    int count=0; 
    double[] nums= new double[100]; 

    for(int i=0;i<nums.length;++i){ 

     nums[i] = scan.nextDouble(); //stores your value 

     if (nums[i] == 0){   //checks if the value in the ARRAY is 0 
      break;   
     } 

     count++; 
     } 
    } 
}