2017-07-30 25 views
0

我想提出一個計算器,並想知道它可能有多個IF運行ELSE命令多個If Else語句之前的答案? (批)

我當前的代碼是之前回答了這個

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

在最後一個if後放置一個'goto:eof'或'goto:inputerror'。您可能會對[選擇](https://ss64.com/nt/choice.html)感興趣。 – Stephan

回答

0

批處理文件逐行解釋。因此,要實現一個else分支你已經之後添加goto語句你最後的if語句:

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 
    ) 
)