Ale*_*lex 0 math cmd batch-file
嗨,我是批处理编程的新手,我想知道你如何检查随机nubmer是否在两个数字之间!
@echo off
set /a num = %random%
if %num% == 0-8191 goto o1
if %num% == 8191-16382 goto o2
if %num% == 16382-24573 goto o3
if %num% == 24573-32764 goto o4
:o1
msg * 1
goto end
:o2
msg * 2
goto end
:o3
msg * 3
goto end
:o4
msg * 4
goto end
:end
pause
Run Code Online (Sandbox Code Playgroud)
我不知道我做错了什么,如果你有更好的版本,请随时表明:D
谢谢
The Dark Canuck的代码回答了问题的比较部分
对于问题的"更好"部分
set /a "num=%random% %% 4 + 1"
goto o%num%
Run Code Online (Sandbox Code Playgroud)
你的逻辑错了.%num%== 0-8191将从0减去8191,得到-8191并将其与num进行比较.没有任何一个被触发,你将会落到o1.
做这样的事情你可能会更好:
if %num% LEQ 8191 goto o1
if %num% LEQ 16382 goto o2
if %num% LEQ 24573 goto o3
if %num% LEQ 32764 goto o4
Run Code Online (Sandbox Code Playgroud)
这将检查num是否小于或等于给定的数字,并转到相应的标签.由于值按递增顺序排列,因此您无需检查下限 - 如果%num%介于16382和8191之间,则第一次检查失败,第二次检查失败,跳过余数.
有关比较运算符的信息,请参阅此问题.
| 归档时间: |
|
| 查看次数: |
909 次 |
| 最近记录: |