我正在编写一个小程序,但我对 if else 语句有疑问。
@echo off
set /p points=
echo %points%
echo 1x5=
set /p 15=
if %15%==5 (
echo well done!
set /a points=%points%+1
) else ( echo wrong! )
pause
echo %points%
pause
即使我填错了答案,它仍然会为我的分数加 1 分并说“干得好!”
(顺便说一句:输入代码时遇到了一些问题,如果您能够阅读代码,现在就不要输入)
最佳答案
当调用批处理文件时命令行中包含参数时,它从代码中引用为 %1
、%2
,... , 第二, ... 参数。
在您的代码中,当您编写 if %15%==5 ...
时,%15%
被解释为批处理文件的第一个参数( %1
) 后跟一个 5 和一个被解析器丢弃的非转义非成对百分号。因此,如果批处理文件没有输入参数且 %1
为空,则您的 if 代码将执行为 if 5==5 ...
作为一般建议,批处理文件中的变量“不应”以数字开头,因为它们将被视为输入参数。
关于batch-file - 批处理 if else 语句不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23722937/