2017-07-30 3 views
0

私は電卓を作っていますし、応答した場合、その可能性は、あなたが他の何かを入力すると私の現在のコードは、しかし、この複数の場合Elseステートメントの前に答えますか? (BATCH)

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つの答えすべてに対してELSEコマンドを働かせるにはどうすればいいですか?

+1

最後の 'if'の後に' goto:eof'または 'goto:inputerror'を置きます。代わりに[choice](https://ss64.com/nt/choice.html)に興味があるかもしれません。 – Stephan

答えて

0

バッチファイルは1行ずつ解釈されます。だから、他の分岐を実装するには、右後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 
    ) 
) 
関連する問題