如何中断for循环 php,关于for循环的一个错误

如下两种for循环的写法,为什么第一种运行时好像进入了死循环,而第二种虽然会报错,但是可以运行出结果,不知道这个for循环中count函数有什么影响

=0 && $arr[$j]>$key) { $arr[$j+1] = $arr[$j]; $j--; } $arr[$j+1] = $key; print_r($arr);}

=0 && $arr[$j]>$key) { $arr[$j+1] = $arr[$j]; $j--; } $arr[$j+1] = $key; print_r($arr);}

回复讨论(解决方案)

数组下标是0开始的,这是常识。

数组下标是0开始的,这是常识。哦,这个常识还是知道的,可是不清楚为什么用了count就会陷入死循环,我觉得count($arr)跟6等价,但是为什么会出错。。。

当 $i 等于 6 时 $j 等于 5

$arr[$j+1] = $arr[$j] 就是 $arr[6] = $arr[$j]

这就给 $arr 增加了一个本不存在的元素

很自然,count($arr) 就发生了变化

循环中你有 print_r($arr); 难道还看不出这一点吗?

正确的写法应该是$arr = array(5, 2, 4, 6, 1, 3);for($i=1;$i=0 && $arr[$j]>$key) { $arr[$j+1] = $arr[$j]; $j--; } $arr[$j+1] = $key;}Array

(

[0] => 1

[1] => 2

[2] => 3

[3] => 4

[4] => 5

[5] => 6

)

当 $i 等于 6 时 $j 等于 5

$arr[$j+1] = $arr[$j] 就是 $arr[6] = $arr[$j]

这就给 $arr 增加了一个本不存在的元素

很自然,count($arr) 就发生了变化

循环中你有 print_r($arr); 难道还看不出这一点吗?

正确的写法应该是$arr = array(5, 2, 4, 6, 1, 3);for($i=1;$i=0 && $arr[$j]>$key) { $arr[$j+1] = $arr[$j]; $j--; } $arr[$j+1] = $key;}Array

(

[0] => 1

[1] => 2

[2] => 3

[3] => 4

[4] => 5

[5] => 6

) 谢谢版主,我这设置好像是等全部运行完后才进行输出,所以一直看不到print_r的内容,多谢多谢

相关标签:循环 错误

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值