- 帖子
- 29
- 积分
- 153
- 技术
- 3
- 捐助
- 0
- 注册时间
- 2009-3-29
|
21楼
发表于 2011-5-3 17:05
| 只看该作者
本帖最后由 yjstone 于 2011-5-3 17:49 编辑
我来说说看看对不对?对于bathome来说我算是新手吧,所以没有违反规定哟,呵呵!
if的执行次数为:100(最外层)+12(12个!a! equ 0条件成立)*10*9*(4+3)=7660 次
最外层的if 判断不管!a! equ 0是真或假都要进100次判断的,否则怎么知道是真是假呢?1至100的整数只有12个可整除8,所以if !a! equ 0 的判断语句后面条件为真的操作被执行了12次,因此if !a! equ 0 后面条件成立时运行的语句被执行了12*9*10(4+3),最内层要执行7+3次判断: for %%c in (15 40 77 91) 4次,for %%c in (6-1-3 0-3-4 7-8-9) 3次。
执行echo>nul操作的次数为:12*(4+2)=72次,每执行一次!a! equ 0条件判断的操作,只有4+2次条件成立也即6次的echo>nul操作。%%a%%b 组成由for /l %%a in (1,1,9) 和 for /l %%b in (0,1,9) 生成的1-99的数字字符,for %%c in (15 40 77 91) do if "%%a%%b" equ "%%c" 生成15 40 77 91四个数字字符来与1-99的数字字符相比较,很明显,有4 次条件成立。
而for %%c in (6-1-3 0-3-4 7-8-9)生成3个字符串:6-1-3 ; 0-3-4 和 7-8-9,for /f "tokens=1,3 delims=-" %%d in ("%%c") do if "%%a%%b" equ "%%d%%e" 生成3个数字符63;04;79 来与1-99的数字字符相比较,所以有2次条件成立。 |
-
1
评分人数
-
|