找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
楼主: batman

【练习-065】批处理for命令嵌套基础练习1

[复制链接]
发表于 2011-4-29 11:48:00 | 显示全部楼层
if:12*9*10*4+12*9*10*3=7560
echo:12*4+12*3=84
if:if !a! equ 0是求100以内能被8整除的数共12个,(1,1,9)9,(0,1,9)10,(15 40 77 91)4,(6-1-3 0-3-4 7-8-9)3。
echo:要执行echo,if的条件就必须是true,外层执行12次,内层分别4,3.
 楼主| 发表于 2011-4-29 11:51:00 | 显示全部楼层
16# Hello123World
层次是搞清楚了,结果请再想想。。。
发表于 2011-4-30 07:29:13 | 显示全部楼层
额 if是7660 少弄个else......
发表于 2011-4-30 07:30:01 | 显示全部楼层
本帖最后由 jinzeyu 于 2011-4-30 07:33 编辑

啊 原来不允许写代码.
发表于 2011-4-30 16:59:58 | 显示全部楼层
这是给新手准备的题目吗?
发表于 2011-5-3 17:05:35 | 显示全部楼层
本帖最后由 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次条件成立。

评分

参与人数 1PB +10 收起 理由
batman + 10 看来你学懂了。

查看全部评分

 楼主| 发表于 2011-5-3 19:25:57 | 显示全部楼层
生成的1-99的数字字符

这里有误哦
发表于 2011-5-3 21:03:07 | 显示全部楼层
生成的1-99的数字字符

这里有误哦
batman 发表于 2011-5-3 19:25

的确是搞错了,正确的应该是10-99的数字字符,好在没有影响到答案的正确性。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-16 22:18 , Processed in 0.019787 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表