我正在编写一个代码来查找平方根,以便使用基本的 cmd 编码进行练习。但是,当我输入负数或不完美的正方形时,它会进入无限循环。我知道如何解决它,但我需要能够使用不等式(小于,大于)。(x 是我拥有的数字,y 是平方根)这样我可以说:
- if %x% (小于) 0 (不操作)
- if %y% (大于) %x% (不操作)
或者我可以创建另一个变量,它比 x 小(z)/大(n):
- 如果 %x% == %z% (不操作)
- if %x% == %n% (不要操作)
请帮我。我似乎找不到答案。
我正在编写一个代码来查找平方根,以便使用基本的 cmd 编码进行练习。但是,当我输入负数或不完美的正方形时,它会进入无限循环。我知道如何解决它,但我需要能够使用不等式(小于,大于)。(x 是我拥有的数字,y 是平方根)这样我可以说:
或者我可以创建另一个变量,它比 x 小(z)/大(n):
请帮我。我似乎找不到答案。
您可以尝试阅读 IF 语句的文档 - 键入HELP IF
或IF /?
从命令行。大约一半描述了支持不等式的命令扩展,例如 LSS 用于小于。
if 0 lss 1 (echo 0 is less than 1) else (echo 0 is not less than 1)
+1 to @dbenham's answer, here's the excerpt of the IF
documentation with all the comparison operators:
If Command Extensions are enabled IF changes as follows:
IF [/I] string1 compare-op string2 command IF CMDEXTVERSION number command IF DEFINED variable command
where compare-op may be one of:
EQU - equal NEQ - not equal LSS - less than LEQ - less than or equal GTR - greater than GEQ - greater than or equal
那么在代码中,这看起来像这样
:: this is Regional settings dependant so tweak this according
:: your current Windows regional settings
for /f "tokens=1-3 delims=,: " %%a in ('echo %time%') do set hhmmsss=%%a%%b%%c
if /i %hhmmsss% LSS 95959 SET hhmmsss=0%hhmmsss%