返回列表 发帖

回复 8楼 的帖子

代码有明显的错误。
%random%是动态变量,它是实时变化的。
set /p var=你取的....这句表示运行到此处暂停,等待用户输入,并把用户输入的值赋予变量var
if %str2% equ o 这里错了,再怎么说也不能是个字母。
楼上每个答案几乎都是用if来判断,可否换种思路:0不能用作除数,否则errorlevel值是个非0的数字。
而||判别前面命令是否成功的标准就是通过判断第一条命令返回的errorlevel是否为0,不为0则是失败,即执行后面的命令。

[ 本帖最后由 pusofalse 于 2008-12-1 22:17 编辑 ]
心绪平和,眼藏静谧。

TOP

回复 10楼 的帖子

youxi果真高人~
但在不开启变量延迟用!!闭合变量的情况下,%0%、%1%会被误解析吧。
@echo Off & Setlocal EnableDelayedExpansion
Set "0=Even" & Set "1=Odd"
Set /a Num=%Random%, n=Num %% 2
Echo %Num% !%n%!
PauseCOPY
Num%%2等同于 Num "&" 1,所以用位运算也可以解答此题。
但wxcute兄的要求是让明白取余运算。只须知道“按位相与”在一定程度上比“取余”要快就好了~
心绪平和,眼藏静谧。

TOP

返回列表