Board logo

标题: 关于"for"的另类理解(个人意见) [打印本页]

作者: bat-zw     时间: 2008-3-11 12:08    标题: 关于"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 ]
作者: woo88     时间: 2008-3-11 13:01
不错
作者: terse     时间: 2008-3-11 13:34


  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 ]
作者: huahua0919     时间: 2008-3-11 14:07
不仅仅是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次!
作者: HAT     时间: 2008-3-11 14:14
讲得很清楚,不过没看出另类的地方:)
作者: bat-zw     时间: 2008-3-12 03:04
这样理解还不是另类啊,起码是另一类理解方法了吧,呵呵
作者: ansipeter     时间: 2008-3-12 11:55
只是很普通的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 ]