2014-11-14 61 views
0

我有這個代碼,當用戶輸入一個顏色的代碼,它應該給用戶的顏色名稱,例如「A01」,然後會說「紅色」,然後顯示顏色,但我怎麼得到循環去通過數組?下面是整個代碼:真的需要這個循環?

import java.awt.Color; 
import java.awt.Graphics; 
import java.util.Scanner; 

public class ArrayColor { 

    public static void main(String[] args) { 
    String d="A01"; 
    String h="A01"; 
    String colorCode[] [] = { {"A01","Red"}, {"B07","Blue"}, {"H02", "Yellow"},{"M04", "Orange"}, {"O05","Black"}, {"L08", "While"} }; 
    Scanner keyboard = new Scanner(System.in); 
    d = getColor(); 
    for(int i=0; i<colorCode.length -1; i++){ 
     System.out.println(colorCode[i]); 
    } 
} 
+0

如果您發現答案有幫助,請考慮將其標記爲已接受。謝謝。 – 2014-11-26 08:24:45

回答

0

變化:

for(int i=0; i<colorCode.length -1; i++) 

隨着:

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

比方說colorCode.length等於1(存在陣列中的一個元件)。如果您正在迭代,而i小於colorCode.length - 1(等於0),您的代碼將不會運行,因爲0不小於0.

3

您可以用java.util.HashMap替換您的二維數組。事情是這樣的:

Map<String, String> colorCode = new HashMap<String, String>(); 
colorCode.put("A01","Red"); 
colorCode.put("B07","Blue"); 
colorCode.put("H02", "Yellow") 
/* .. etc... */ 

然後你就可以做這樣的事情(沒有for環)檢索顏色:

Scanner keyboard = new Scanner(System.in); 
String userInput = keyboard.nextLine(); 
String color = colorCode.get(userInput); 
System.out.println(color); 

當然,你應該檢查一下userInput是有效的。