在Java中使用switch分配附加值
我是java新手,正在尝试编写一个开关。根据猜测值,将授予不同的奖励。我做错了,因为编译器说变量已经定义了。但我怎么能不给它下定义,让开关知道要寻找什么样的价值来给予什么样的奖励呢在Java中使用switch分配附加值,java,switch-statement,Java,Switch Statement,我是java新手,正在尝试编写一个开关。根据猜测值,将授予不同的奖励。我做错了,因为编译器说变量已经定义了。但我怎么能不给它下定义,让开关知道要寻找什么样的价值来给予什么样的奖励呢 if (guess == randomNom) { System.out.println(" You Win! "); player.setEarning(player.getEarn() + guess * 10); int reward = guess; String prize
if (guess == randomNom)
{
System.out.println(" You Win! ");
player.setEarning(player.getEarn() + guess * 10);
int reward = guess;
String prize = "";
switch(reward)
{
case 1: int reward = 10;
String prize = " Prize #1";
break;
case 2: int reward = 20 ;
String prize = "Prize #2";
break;
case 3: int reward = 30;
String prize = "Prize #3";
break;
...
}
如果编译器说“好”,您尝试创建“另一个具有相同名称的变量”,则会出现问题。删除重复的声明
if (guess == randomNom)
{
System.out.println(" You Win! ");
player.setEarning(player.getEarn() + guess * 10);
int reward = guess;
String prize = "";
switch(reward)
{
case 1: reward = 10;
prize = " Prize #1";
break;
case 2: reward = 20 ;
prize = "Prize #2";
break;
case 3: reward = 30;
prize = "Prize #3";
break;
...
}
问题就在这些方面
String prize = "";
String prize = " Prize #1";
String prize = "Prize #2";
当您以上述方式(即数据类型后跟变量名)分配变量时,编译器假定您要定义一个具有某个值的新变量
相反,您应该定义它一次
String prize = ""; // Data type followed by variable name is to define new variable
并随后更新
prize = " Prize #1"; //just the variable name with assignment operator to assign new value to existing variable.
prize = " Prize #2";
只需删除所有字符串prize=语句前面的字符串,除了第一个和第二个相同的带有int和reward的字符串。一个变量只声明一次。之后,你就用它。投票以打字错误/不重复的方式结束。参考这一点,你可能想从一开始就开始。而且,你应该意识到所有这些int奖励。。。在你的开关中,声明一个新的变量,这个变量只在这个例子中可见。相反,解释他做错了什么背后的逻辑以及正确的方法是什么:-正确的解释:-