for循环的一个疑问

for循环的一个疑问



[Copy to clipboard] [ - ]
CODE:
#!/usr/local/bin/perl
my @arr = (undef,1,1);
for(my $i =0;$i<3 && $arr[$i];$i++)
{
        print "$arr[$i]\n";
}

程序并没有进入循环,无任何打印信息

[Copy to clipboard] [ - ]
CODE:
#!/usr/local/bin/perl
my @arr = (undef,1,1);
for(my $i =0;$i<3;$i++)
{
        print "$arr[$i]\n" if $arr[$i];
}

如此则会打印出后面两个1
不解。
不解就去学习!
学学 for 的意思是什么,
用纸和笔画一画,搞明白每一步都发生了什么事。
看了一下你发的帖子,看来你以前还学过 C 语言,那怎么还问这么白痴的问题?
我来问你,
在 C 语言中,

[Copy to clipboard] [ - ]
CODE:
int main( void )
{
    int arr[] = {0, 1, 1};
    int i;

    for( i=0; i<3 && arr[i]; i++ ){
        printf( "%d\n", arr[i] );
    }
}

会输出什么?



[Copy to clipboard] [ - ]
CODE:
int main( void )
{
    int arr[] = {0, 1, 1};
    int i;

    for( i=0; i<3; i++ ){
        if ( arr[i] ) printf( "%d\n", arr[i] );
    }
}

的输出又有什么不同?
$arr[0] = undef,第一轮循环你就进不去,在此你还需要了解&& 与 || 用法。
瀑布汗啊,晕了
anyway 3ks.


QUOTE:
原帖由 digex 于 2007-11-29 16:05 发表
瀑布汗啊,晕了
anyway 3ks.

真丢人!
拜托下次不要调戏偶们了好不好?


QUOTE:
原帖由 放驴娃 于 2007-11-29 14:46 发表
看了一下你发的帖子,看来你以前还学过 C 语言,那怎么还问这么白痴的问题?
我来问你,
在 C 语言中,
int main( void )
{
    int arr[] = {0, 1, 1};
    int i;

    for( i=0; i

这个回答才叫瀑布汗呢