if语句之外的变量访问
问题描述:
我想访问java中if语句之外的变量。该变量是axeMinDmg
。这是我的,但得到一个错误。我想minDmg = axeMinDmg
。谢谢if语句之外的变量访问
@SuppressWarnings("unused")
public static void main(String[] args)
throws IOException
{
int count = 1;
// start both with 1 point
int goodTotal = 50;
int monTotal = 50;
// set amount of money that Goodman has
int moneyAmt = 10;
// setting array for bat
int [] bat = {2, 4, 3};
int batMinDmg = bat[0];
int batMaxDmg = bat[1];
int batCost = bat[2];
//setting array for axe
int [] axe = {4, 6, 6};
int axeMinDmg = axe[0];
int axeMaxDmg = axe[1];
int axeCost = axe[2];
//setting array for sword
int [] sword = {6, 8, 10};
int swordMinDmg = sword[0];
int swordMaxDmg = sword[1];
int swordCost = sword[2];
// ask if Goodman would like to purchase a weapon
System.out.println("Would you live to purchase a weapon (YES OR NO): ");
Scanner sc = new Scanner(System.in);
String name = sc.next();
if (name.equals("yes")){
System.out.println("Select Your Weapon \n axe \n bat \n sword : \n ");
Scanner wc = new Scanner(System.in);
String weapon = wc.next();
int minDmg = axeMinDmg;
if(weapon.equals("axe")){
int minDmg = axeMinDmg;
} else {
System.out.println();
} // close if statement
答
您需要定义if语句之外的变量才能在外部使用它。
答
只是声明整数if语句外:
int minDmg;
if(weapon.equals("axe")){
minDmg = axeMinDmg;
} else {
System.out.println();
System.out.println("Can access variable: " + minDmg);
答
在Java中,变量的范围内,定义。这里的范围是if块。所以如果你在if块之外声明它,它将在封闭方法范围中可用。
答
如果要将变量分配给if-else块之外,可以使用运算符代表的ternary operator。
例如,标准的if-else Java表达式:
int money;
if (shouldReceiveBonus()) {
price = 100;
}
else {
price = 50;
}
随着三元操作等效于:
int money = shouldReceiveBonus() ? 100 : 50;
是有声明全局变量与范围来访问变量的方式 – earnest 2011-02-28 19:29:09
我不确定我了解你的问题。 – 2011-02-28 19:39:09