开发者

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    


You'll need to define the variable outside of the if statement to be able to use it outside.


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;
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜