真的需要这个循环吗?

时间:2014-11-14 23:53:35

标签: java loops

我有这个代码,当用户输入一个颜色的代码,它应该给用户颜色名称,例如“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]);
    }
}

2 个答案:

答案 0 :(得分:3)

您可以使用java.util.HashMap替换2D数组。像这样:

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是否有效。

答案 1 :(得分: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.