2010-01-12 56 views
2

我想要做的就是我有這個程序,讀取一個數字,這個數字表示有多少的話有,例如:一個奇特的錯誤我似乎無法找到

3 
red 
blue 
green 

然後打印出相同的文字,但以相反的順序所以這將是

green 
blue 
red 

之後是一個空行指示,你是與特定問題做服務器。但我似乎在我的代碼中有一個錯誤。

我試圖將這些單詞存儲在數組List中。我用一個for循環將它們存儲在列表中,然後以相反的順序將它們打印出來,我只是使用另一個for循環以相反的方式,從列表的末尾開始。

當我從命令提示符運行程序時,它只是進入下一個命令提示符行,就好像我編譯程序一樣,沒有錯誤,但是當我使用測試程序I創建,似乎程序讀取數字,然後去打印出一個空白數組。

這似乎是從服務器的話不存儲在數組中,我不知道我做錯了什麼。我不是最偉大的程序員,所以任何幫助將不勝感激。

驗證碼:

import java.io.*; 
import java.util.*; 

public class Solution 
{ 
    public static void run(BufferedReader in, PrintWriter out) 
     throws IOException 
    { 
     int x = Integer.parseInt(in.readLine()); 

     while(x != 0) 
     { 
      ArrayList num = new ArrayList(); 

      for(int i = 0; i < num.size(); i++) 
      { 
       //String f = in.readLine(); 
       num.add(in.readLine()); 
      } 
      //System.out.println(num); 

      for(int i = num.size()-1; i > 0; i--) 
      { 
       out.println(num.get(i)); 

       //x = Integer.parseInt(in.readLine()); 
       System.out.println(); 
      } 
      break; 
     } 
     out.flush(); 
    } 
} 
+0

功課? ....... – 2010-01-12 08:55:11

+1

是你的整個代碼嗎? 「主」在哪裏? – 2010-01-12 08:55:30

回答

3

while循環永遠不會停止

編輯:哎呀,不,這不是真的,但什麼是具有運行一次while循環的地步?你在它的最後放了一個休息,所以也許你可以重構一個if?也許是警衛?

9
ArrayList num = new ArrayList(); 

for(int i = 0; i < num.size(); i++) 

意味着你從0到0!

for(int i = 0; i < x; i++) 

會更好。

2

NUM這裏的大小爲0,應使用「X」代替num.size()

 for(int i = 0; i < num.size(); i++) 
     { 
      //String f = in.readLine(); 
      num.add(in.readLine()); 

     } 
0

這可能不是確切的你做了什麼..有點不同..: - )

int x = Integer.parseInt(in.readLine()); 
String[] arr = new String[x]; // Edited :: Slip of mind - Thanks Pgras  
for(int i=0;i<x;i++){ //input x number of words and store.. 
arr[i] = in.readLine(); 
} 

for(i=x-1;i>=0;i--){ //Display words in reverse order 
System.out.println(arr[i]); 
} 
+0

爲什麼你不寫String [] arr = new String [x]; ??? – pgras 2010-01-12 09:41:34

相關問題