2014-09-21 54 views
-1

我有没有程序只允许用户输入一个号码如何让用户控制数组中的输入?

import java.util.Scanner; 

public class ArrayEvenNumber { 

     public static void main (String[] args) 
     { 

      int i,x,a[] = new int[10]; 



      Scanner input = new Scanner(System.in); 


      //user input 
      for(i=0;i<10;i++) 
      { 
      System.out.println("Enter Number :"); 
      System.out.println("Enter -1 When Finished"); 
      a[i] = input.nextInt(); 
      //printing the data 
      System.out.println("The integers you've entered are : "); 
      for (i=0;i<a.length;i++) 
       System.out.println(a[i]); 


      } 

      System.out.println("Even Numbers are :-"); 
      //showing the even numbers 
      for(i=0;i<10;i++) 
      { 
       x=a[i]%2; 
       if(x==0) 
       System.out.println(a[i]); 
      } 
     } 
} 
+1

你的第二个for循环,让您打印的数据是内你的第一个for循环。你基本上试图打印尚未输入的数据。 – MarGar 2014-09-21 20:41:50

回答

1

您只需要打印数据当您完成将在数据显示的数据的问题。

for(i=0;i<10;i++) 
    { 
    System.out.println("Enter Number :"); 
    System.out.println("Enter -1 When Finished"); 
    a[i] = input.nextInt(); 

    } 
//printing the data 
    System.out.println("The integers you've entered are : "); 
    for (i=0;i<a.length;i++) 
     System.out.println(a[i]); 

另外,我注意到你的整个代码可以使用一些改进:

Scanner input = new Scanner(System.in); 


System.out.println("Enter Number :"); 
System.out.println("Enter -1 When Finished"); 

int entered = 0; 
int counter = 0; 
while(counter < a.length) { 
    entered = input.nextInt(); 
    if(entered == -1) break; 
    a[counter] = entered; 
    counter++; 
} 


System.out.println("The integers you've entered are : "); 
for (i=0;i<a.length;i++) 
    System.out.println(a[i]); 
}