|
bat-zw
金牌会员
永远的学习者
积分 3105
发帖 1276
注册 2008-3-8
状态 离线
|
『楼 主』:
关于"for"的另类理解(个人意见)
关于DOS中至强命令FOR的理解,各位前辈们已有了详细的分析,在此本人就“不班门弄斧孔门作文比欠盖茨面前比钞票了”,只是发表一下本人对其的另类理解。一般DOS命令都只是单次执行,下面以ping为例进行下说明:
ping/n 10 127.1/此命令就是对本地网卡一次拼测10下,就好比是一个人去做一件有10道程序的事情。如加入for:
for /l %%a in (1,1,10) do ping/n 10 127.1/就变成了反复拼测10次(每次拼10下),就好比是一个人10次去做同一件有10道程序的事。
又如下面这段命令:
ping 192.168.1.1 -n 10
ping 192.168.1.2 -n 10
ping 192.168.1.3 -n 10
........................
ping 192.168.1.10 -n 10
是表示对192.168.1网段内尾数为1至10内的ip依次进行拼测10下,就如同一个人一次去做一组有10件每件有10道程序的事。加入for后:
for /l %%a in (1,1,10) do ping 192.168.1.%a%/就如同叫10个人来做这组事,每人依次负责一件有10道程序的事。
再如下面的这段命令:
ping 192.168.0.1 -n 10
ping 192.168.0.2 -n 10
........................
ping 192.168.0.n -n 10
ping 192.168.1.1 -n 10
ping 192.168.1.2 -n 10
........................
ping 192.168.1.10 -n 10
就是对192.168.0网段和192.168.1网段内尾数在1至10内的每个ip分别拼测10下,这如同叫一个人去做两组每组都有10件每件有10道程序的事,加入for:
for /l %%a in (0,1,1) do (
for / %%b in (1,1,10) do (
ping 192.168.%a%.%b% -n 10
)
)
这就变成了叫两组人每组10个来分开做这两组事,每人依次负责一件有10道程序的事。
以上纯属个人理解,我过往说之,大家也就过往听之了,只要不拍砖就好了,呵呵。
:-)
[ Last edited by zw19750516 on 2008-3-11 at 08:23 PM ]
|
|
2008-3-11 12:08 |
|
|
woo88
初级用户
积分 188
发帖 96
注册 2008-3-11
状态 离线
|
|
2008-3-11 13:01 |
|
|
terse
银牌会员
积分 2404
发帖 946
注册 2005-9-8
状态 离线
|
『第
3 楼』:
Quote: | Originally posted by zw19750516 at 2008-3-11 12:08:
关于DOS中至强命令FOR的理解,....
for /l %%a in (0,1,1) do (
for / %%b in (1,1,10) do (
ping 192.168.%a%.%b% -n 10
)
) ...... |
|
这里是否是这样的?
for /l %%a in (0,1,1) do (
for /l %%b in (1,1,10) do (
ping 192.168.%%a.%%b -n 10
)
)
pause
理解你前面的 也可以这样的嘛!
for /l %%a in (0,1,1) do (
for /l %%b in (1,1,10) do (
for /l %%c in (1,1,10) do (
ping 192.168.%%a.%%b
)
)
)
pause
[ Last edited by terse on 2008-3-11 at 01:42 PM ]
|
简单!简单!再简单! |
|
2008-3-11 13:34 |
|
|
huahua0919
银牌会员
积分 1608
发帖 780
注册 2007-10-7
状态 离线
|
『第
4 楼』:
不仅仅是for命令,一般循环语句在没有内部跳转符的时候,都是按照先里后外的执行顺序执行的!
public Data
public static void main(String [] args)
{
for (int i=0;i<10;i++)
for(int j=0;j<10;j++)
System.out.println("i"+i+"j"+j)
} 以上代码同样执行100次!
|
|
2008-3-11 14:07 |
|
|
HAT
版主
积分 9023
发帖 5017
注册 2007-5-31
状态 离线
|
『第
5 楼』:
讲得很清楚,不过没看出另类的地方:)
|
|
2008-3-11 14:14 |
|
|
bat-zw
金牌会员
永远的学习者
积分 3105
发帖 1276
注册 2008-3-8
状态 离线
|
『第
6 楼』:
这样理解还不是另类啊,起码是另一类理解方法了吧,呵呵
|
|
2008-3-12 03:04 |
|
|
ansipeter
中级用户
替身
积分 269
发帖 130
注册 2007-3-23
状态 离线
|
『第
7 楼』:
只是很普通的FOR语句的嵌套使用,好像不是太过分的另类理解吧?呵呵
而且还可以这样玩
@echo off
for /l %%a in (1,1,50) do (
for /l %%b in (1,1,%%a) do set/p a=#<nul
echo.
)
[ Last edited by ansipeter on 2008-3-12 at 12:03 PM ]
|
*讨厌的9527* |
|
2008-3-12 11:55 |
|