dos问题 ~菜鸟向各位大虾请教~

来源:百度知道 编辑:UC知道 时间:2024/04/28 04:59:24
@echo off

echo 1+1=?

set /p s=
if " %s%"=="2" (goto dui) else (goto cuo)
:dui
echo 对
:cuo
echo 错
pause

--------------------------------------
为什么输入2了还是显示 错呢?

你的问题在于:
1." %s%"多了一个空格,那自然不能匹配“2”了,改成"%s%";
2.goto dui之后,程序还会继续往下执行cuo的代码,如果不跳过,‘对’‘错’就会一起出现,所以还需要在跳到dui之后,增加一个goto end,这样就避免了多余的输出;

测试成功的范例如下:

@echo off

echo 1+1=?

set /p s=
if "%s%"=="2" (goto dui) else (goto cuo)
:dui
echo 对
goto end
:cuo
echo 错
:end
pause

当输入正确的2以后,程序跳到:DUI段,执行完ECHO命令后,后面没有结束语句或是跳出语句,所以程序继续向下走,把:CUO段也执行了一遍,因此,会ECHO错