I am trying to use nested if-else statements in order to implement or operator.
The problem is that the code only works outside the last nested else statement and I can't figure out why.
I added some notes marked with // that are not actually in the script to help you get a clue of what I am trying to do.
Here is my batch script:
:computerMakePick
setLocal
    set /a currentNumber= 15
    set /a addOne=%currentNumber%+1
    set /a addTwo=%currentNumber%+2
    //the next segment implements OR operator for two conditions using nested if-else statement
    if %addOne% == 7 (  //checking first condition.
        echo Computer chose: %addOne%
        set /a currentNumber= %addOne%
    )else (
        if %addTwo% == 8 ( // now checking: OR second condition
            echo Computer chose: %addTwo%
            set /a currentNumber= %addTwo%
        )else ( // if not both of the above then do this.  NOW this section below doesn't work
            set /a bottomlimit= 1
            set /a upperlimit= 2
            set /a limit=%upperlimit%-%bottomlimit%+1
            set /a randomChoice= %bottomlimit% + %RANDOM% %% %limit%
            set /a currentNumber= %currentNumber%+%randomChoice%        
            echo Computer chose: %currentNumber%
        )
    )
endLocal & set /a currentNumber= %currentNumber%
goto :eof
If I take the last else section to outside like this below, then it works:
:computerMakePick
setLocal
    set /a currentNumber= 15
    set /a addOne=%currentNumber%+1
    set /a addTwo=%currentNumber%+2
    //the next segment implements OR operator for two conditions using nested if-else statement
    if %addOne% == 7 (  //checking first condition.
        echo Computer chose: %addOne%
        set /a currentNumber= %addOne%
    )else (
        if %addTwo% == 8 ( // now checking: OR second condition
            echo Computer chose: %addTwo%
            set /a currentNumber= %addTwo%
        )else ( 
            echo.    // need to put something in here or else it doesn't work.
        )             // could also delete this last else-statment but it doesn't matter
    )    
//now this below works fine. and I don't understand why under second-else section it doesn't
set /a bottomlimit= 1
set /a upperlimit= 2
set /a limit=%upperlimit%-%bottomlimit%+1
set /a randomChoice= %bottomlimit% + %RANDOM% %% %limit%
set /a currentNumber= %currentNumber%+%randomChoice%        
echo Computer chose: %currentNumber%
endLocal & set /a currentNumber= %currentNumber%
goto :eof
By saying it's not working I mean if I print the values of each variable: bottomlimit, upperlimit, limit, etc. when they are defined inside the second else statement, for example for the command line echo value of limit is = %limit% I get blanks (nothing).
Why is this happening and how can I fix it to work inside the second else statement?
 
     
     
    