首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >特定类型if语句的正确语法

特定类型if语句的正确语法
EN

Stack Overflow用户
提问于 2022-05-08 04:38:33
回答 1查看 63关注 0票数 0

我正在制作一个基于rpg的文本,我在为一种特定的if声明而挣扎,我不愿意分享确切的代码,因为它包含了我在过去5年中所做的很多内容,我希望能得到一个版权。(为了澄清,我是关于我自己创作的艺术品、音乐和故事情节的)

守则的例子:

代码语言:javascript
运行
复制
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应该=5,因此禁止尝试的操作,即将10添加到opt1,而不是跳过if并以任何方式添加10。到目前为止,这类方程在其他领域对我起了作用,我不明白为什么它现在不起作用。唯一的区别是其他代码完全定义了变量,例如: opt1=10 opt2=5,如果opt2=5随后回显,您就不能这样做。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-08 11:15:10

若要对批处理中的表达式执行比较,可以使用Set /A与设计为0的表达式一起计算为0,如果为false,则与&&||条件运算符一起实现if else逻辑。

IE:

代码语言:javascript
运行
复制
@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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72158106

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档