我正在制作一個基于文本的 rpg 并且我正在為一種特定的 if 陳述句而苦苦掙扎,我不傾向于分享確切的代碼,因為它有很多我希望在過去 5 年中制作的內容獲得著作權。(澄清一下,我指的是我自己創作的藝術作品、音樂和故事情節)
代碼示例:
set choice=00
:top
cls
echo What would you like to do?
echo 1) gain 10 points
echo 2) do something else
set /p choice=Your Choice:
if %choice%==1 goto :options
if %choice%==2 goto :something-else
if %choice%==00 goto :end
:options
set /a opt1=10
set /a opt2=10
if %opt1%==%opt2%-5 goto :nxt
set /a opt1 =10
goto :top
:nxt
cls
echo You can't do that!
echo/
echo Press Enter to Continue
pause >nul
goto :top
:something-else
exit
:end
exit
問題是,我的程序完全忽略了這個 if 陳述句。從我的角度來看, opt2-5 should = 5 因此禁止正在嘗試的操作,即向 opt1 添加 10,而是跳過 if 并添加 10。到目前為止,這種型別的方程式在其他領域對我有用,我不明白為什么它現在不起作用。唯一的區別是其他代碼完全定義了變數,例如:opt1=10 opt2=5,如果 opt2=5 那么 echo 你不能這樣做。
uj5u.com熱心網友回復:
要批量執行運算式的比較,您可以使用Set /A設計為在 false 時計算為 0 的運算式與&&或||條件運算子一起使用來實作 if else 邏輯。
IE:
@Echo off
:l
Set /A A=5,B=2
Set /P "C=Value for C: "
2> nul Set /A "D=B C","1/(A-D)" && (
Cmd /V:On /C "Echo(!A! ^!= !D!"
) || (
Cmd /V:On /C "Echo(!A! == !D!"
)
Goto:l
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/473718.html
上一篇:從另一個檔案的字串中提取數字
