我試圖做一個小遊戲的人,我做一個無限的調平系統,但它不工作。這就是它的樣子。爲什麼批處理文件中的IF條件解釋3大於2 * 2?
if %exp% gtr %lvl%*%lvl% goto lvlup
:lvlup
set /a exp=%exp%-%lvl%*%lvl%
set /a cmhealth=%cmhealth%+5
set /a cchealth=%cchealth%+5
set /a cattack=%cattack%+3
set /a cDefence=%cDefence%+4
set /a cspeed=%cspeed%+2
set /a lvl=%lvl%+1
set /a SP=%SP%+1
goto decisions
它運行正常,直到它到達這樣的:
if 3 GTR 2*2 goto lvlup
set /a exp=3-2*2
set /a cmhealth=25+5
set /a cchealth=18+5
set /a cattack=8+3
set /a cDefence=15+4
set /a cspeed=8+2
set /a lvl=2+1
set /a SP=1+1
goto decisions
而且exp
然後設置爲-1
。
它爲什麼這樣做,我該如何解決?
的問題是它不讀取2 * 2 4或3×3作爲9.
您不能在'if'語句中進行算術運算,只能比較單個值,因此您必須事先通過'set/A'語句計算'%lvl%*%lvl%'並使用其結果爲了比較;如果你在'if'語句中有'2 * 2',它會被比較爲一個字符串... – aschipfl
謝謝@aschipfl它的工作。 – bymdal