在本月精华中if怎样判断汉字字符的文章中 有个版主写了一段代码是
for %%i in (a b c d e f g h i j k l n m o p q r s t u v w x y z) do if /i "%%i" equ "%a%" echo %a%是字母
for %%i in (0 1 2 3 4 5 6 7 8 9) do if "%%i" equ "%a%" echo %a%是数字
但我试验了下 结果显示
for %i in (a b c d e f g h i j k l n m o p q r s t u v w x y z) do if /i "%i" equ "" echo 是字母
if /l "a" EQU "" echo 是字母
if /l "b" EQU "" echo 是字母
。
。
。
。
for %i in (0 1 2 3 4 5 6 7 8 9) do if "%i" equ "" echo 是数字
if "0" EQU "" echo 是数字
if "1" EQU "" echo 是数字
。
。
。
为什么"a"("0")EQU "" echo 是字母(是数字), 中不显示a 我认为是在整个代码前没有给a赋值以至于程序在执行版主的代码之前已经给a自动赋了个空值,所以在显示结果中a就以空值的形式出现,所以就会出现结果中的样子,但如果在代码前用set给a赋个值 那结果中a就会以赋的那个值出现 比如:
set a=b
for %%i in (a b c d e f g h i j k l n m o p q r s t u v w x y z) do if /i "%%i" equ "%a%" echo %a%是字母
for %%i in (0 1 2 3 4 5 6 7 8 9) do if "%%i" equ "%a%" echo %a%是数字
那结果就是
for %i in (a b c d e f g h i j k l n m o p q r s t u v w x y z) do if /i "%i" equ "b" echo b是字母
if /l "a" EQU "b" echo b是字母
if /l "b" EQU "b" echo b是字母
。
。
。
。
for %i in (0 1 2 3 4 5 6 7 8 9) do if "%i" equ "b" echo b是数字
if "0" EQU "b" echo b是数字
if "1" EQU "b" echo b是数字
这只是本人的见解 可能不对 大家不要骂我 如果不对的话请大虾们给出个正确解释
。^_^
。
。
我感觉没错啊。
for %i in (a b c d e f g h i j k l n m o p q r s t u v w x y z) do if /i "%i" equ "" echo 是字母
if /l "a" EQU "" echo 是字母
if /l "b" EQU "" echo 是字母
。。。。
这只是处理过程,而不是结果。
---------------------------------------------------------------
for %i in (a b c d e f g h i j k l n m o p q r s t u v w x y z) do if /i "%i" equ "b" echo b是字母
if /l "a" EQU "b" echo b是字母
if /l "b" EQU "b" echo b是字母
这里的if /l "a" equ "b" echo b是字母。
a怎么可能等于b呢。
^_^ 我又测试了一下本月精华的代码发现
for %%i in (a b c d e f g h i j k l n m o p q r s t u v w x y z) do if
/i "%%i" == "%a%" echo %a%是字母
for %%i in (0 1 2 3 4 5 6 7 8 9) do if "%%i" equ "%a%" echo %a%是数字
pause
如果把“echo %a%是字母(是数字)”换个行写而不是接着"%%i" == "%a%" 后面写,如果这样的话运行代码时黑框框会一闪而过 而不是执行pause的动作 是不是代码这样一改就错了 为什么呢~~~