多个如果在Else声明之前回答? (批量)

时间:2017-07-30 09:10:56

标签: batch-file

我正在制作一个计算器,想知道在运行ELSE命令之前是否可能有多个IF答案

我目前的代码是

echo 1 - Addition
echo 2 - Subtraction
echo 3 - Multiplication
echo 4 - Division
echo 5 - Exit
set /p startans=Type 1, 2, 3, 4 or 5 then press ENTER: 
if %startans%==1 goto :addition
if %startans%==2 goto :subtraction
if %startans%==3 goto :multiplication
if %startans%==4 goto :division
if %startans%==5 goto :end

但是,如果您键入除这些数字之外的其他内容,则会直接添加,因为文件中会出现下一个。如何使ELSE命令适用于所有5个答案?

1 个答案:

答案 0 :(得分:0)

批处理文件逐行解释。因此,要实现一个else-branch,你需要在最后一个if语句之后添加一个goto语句:

if %startans%==5 goto :end
goto :wrong_input

rem all of your other jump marks here

:wrong_input
echo Your input is not valid

另一种方法是使用替代IF语法,您可以在其中嵌套IF条件:

IF "%startans%" == 1 (
    REM addition code here
) ELSE (
    IF "%startans%" == 2 (
        REM Subtraction here
    ) ELSE (
        REM neither addition nor subtraction code here
        echo Your input is not valid
    )
)