简体   繁体   中英

variable access outside of if statement

I am trying to access variable outside an if statement in java. The variable is axeMinDmg . Here is what i have but getting an error. I want minDmg = axeMinDmg . thanks

    @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语句之外定义变量才能在外部使用它。

In Java, variables are defined within a scope. Here the scope is the if block. so if you declare it outside the if block, it will be available in the enclosing method scope.

Just declare the integer outside the if statement:

 int minDmg;
 if(weapon.equals("axe")){
     minDmg = axeMinDmg;
 } else {
     System.out.println();
 System.out.println("Can access variable: " + minDmg);

If you want to assign a variable to outside of if-else block, you can use ternary operator which represented by the : operator.

For example, the standard if-else Java expression:

int money;
if (shouldReceiveBonus()) {
    price = 100;
}
else {
    price = 50;
}

With ternary operator is equivalent to:

int money = shouldReceiveBonus() ? 100 : 50;
int minDmg = 0; // outside of if statement.

Hii, I had same problem with if statement and after this i solved my problem. in this problem you have to declare the variable outside the loop and if statement and this this null value at the time of initialise.

int minDmg = 0;

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM