Java试图使用switch语句创建一个对象,该语句根据用户输入具有不同的参数
因此,我使用Java编写了一个文本冒险RPG,我想使用一个switch语句,它将接受用户的下一个输入,并根据用户的输入使用不同的参数创建我的类的实例ftawarm 例如,如果用户输入1,我想创建一个名为武器的FTA武器实例,参数为1、6、1、5、8、75 但是如果用户改为输入2,我想创建一个FTAFarm的实例,仍然命名为武器,参数为2,24,3,7,15,65 但是,我得到了这个错误: 错误:可变武器已在方法mainString[]中定义 在第一次尝试创建对象实例之后的所有尝试中,此错误出现4次 下面是给我这个问题的代码:Java试图使用switch语句创建一个对象,该语句根据用户输入具有不同的参数,java,switch-statement,instance,Java,Switch Statement,Instance,因此,我使用Java编写了一个文本冒险RPG,我想使用一个switch语句,它将接受用户的下一个输入,并根据用户的输入使用不同的参数创建我的类的实例ftawarm 例如,如果用户输入1,我想创建一个名为武器的FTA武器实例,参数为1、6、1、5、8、75 但是如果用户改为输入2,我想创建一个FTAFarm的实例,仍然命名为武器,参数为2,24,3,7,15,65 但是,我得到了这个错误: 错误:可变武器已在方法mainString[]中定义 在第一次尝试创建对象实例之后的所有尝试中,此错误出现4
switch(kb.next())
{
case "1":
System.out.println("\n\n*.44 Magnum Revolver added to inventory*");
FTAWeapon weapon = new FTAWeapon(1, 6, 1, 5, 8, .75);
break;
case "2":
System.out.println("\n\n*Assault Rifle added to inventory*");
FTAWeapon weapon = new FTAWeapon(2, 24, 3, 7, 15, .65);
break;
case "3":
System.out.println("\n\n*Laser Pistol added to inventory*");
FTAWeapon weapon = new FTAWeapon(3, 30, 1, 2, 6, .85);
break;
case "4":
System.out.println("\n\n*Caravan Shotgun added to inventory*");
FTAWeapon weapon = new FTAWeapon(4, 14, 7, 3, 20, .50);
break;
case "5":
System.out.println("\n\n*Plasma Rifle added to inventory*");
FTAWeapon weapon = new FTAWeapon(5, 24, 1, 5, 10, .70);
break;
}
每个case子句中的变量范围对应于整个switch语句。在switch语句上方声明变量,就可以了。确保在教科书中查找范围。
FTAWeapon weapon = null; // Declaration outside the switch statement
switch(kb.next())
{
case "1":
System.out.println("\n\n*.44 Magnum Revolver added to inventory*");
weapon = new FTAWeapon(1, 6, 1, 5, 8, .75);
break;
case "2":
System.out.println("\n\n*Assault Rifle added to inventory*");
weapon = new FTAWeapon(2, 24, 3, 7, 15, .65);
break;
case "3":
System.out.println("\n\n*Laser Pistol added to inventory*");
weapon = new FTAWeapon(3, 30, 1, 2, 6, .85);
break;
case "4":
System.out.println("\n\n*Caravan Shotgun added to inventory*");
weapon = new FTAWeapon(4, 14, 7, 3, 20, .50);
break;
case "5":
System.out.println("\n\n*Plasma Rifle added to inventory*");
weapon = new FTAWeapon(5, 24, 1, 5, 10, .70);
break;
}