在Java中将颜色映射为整数的方法
问题描述:
我正在处理我的Java类的代码,我无法弄清楚如何创建接受int参数并根据该int更改颜色的方法。 问题明确要求我们:在Java中将颜色映射为整数的方法
在代码中,映射每种颜色一个整数(例如,在我的代码3表示的绿色。)如果传递给方法的数量是无效的,改变颜色为红色。有效颜色为“红色”,“黄色”,“绿色”,“蓝色”,“品红色”和“黑色”。
换句话说,我试图用一个整数来选择一个字符串的颜色。我会如何去做这件事?
我曾尝试:
公共无效changeColor(INT newColor) {
switch(color) {
case 1:
// color1
case 2:
// color2
case 3:
// color3
default:
//defaultcolor
}
draw();
}
我收到一个编译器错误说;
不兼容的类型:INT不能转换为java.lang.String
我道歉,如果我不输入正确的密码。我对编程非常陌生。
答
您可以在颜色使用开关:
void selectColor(int color) {
switch(color) {
case 1:
// color1
break;
case 2:
// color2
break;
case 3:
// color3
break;
default:
//defaultcolor
}
}
但是它会更好定义枚举,并将它传递给这个函数,而不是int值。
答
几件事情:
你不是应该使用newColor
您switch
? (只是使其基于您的片段。也不太清楚,如果你有其他的代码之间。
而且,穿上你的case
个break
,否则它会经过每个案件时适用
public void changeColor(int newColor) {
switch(newColor) {
case 1:
// color1
break;
case 2:
// color2
break;
case 3:
// color3
break;
default:
//defaultcolor
}
draw();
}
最后,根据您的异常(INT无法转换为java.lang.String),它看起来像你想的int
转换为String
某处你的代码。尝试使用一个Integer
,而不是原始int
。
Integer number;
String numberInWords = Integer.toString(number);
代替
int number;
希望它能帮助。
有很多方法可以做到这一点。为了简单起见,我建议阅读['switch'](https://docs.oracle.com/javase/tutorial/java/nutsandbolts/switch.html)声明。 – saadq
我不会使用开关。只需要一个带有颜色的字符串数组,让用户的输入成为颜色的索引。当然,你必须考虑到人类通常使用1作为“第一”号码。 – ChiefTwoPencils
我只推荐一个'switch',因为这个问题的结构(根据数字选择一种颜色,如果数字无效,则使用*默认*颜色)。 – saadq