PHP ++$I和$i++ 10
<?php$i=2;switch($i++){case2:echo'输出2<br/>';echo$i;break;case3:echo'输出3<br/>'.$i;brea...
<?php
$i=2;
switch($i++){
case 2:
echo '输出2<br/>';
echo $i;
break;
case 3:
echo '输出3<br/>'.$i;
break;
case 1:
echo "输出1<br/>";
break;
default:
break;
}
echo $i;
?>
输出结果:
输出2
3
我想问首先不是将2赋值给$i吗,这时$i应该为2呀,完了对应case 2,显示“输出2”,可此时$为何却变成了3?
另外FOR循环中$i++和++$i不是没区别嘛,部分先加和后加,为何SWITCH语句里分,而且像上面那短代码,$i++,先赋值2判断,而后输出却变成3,谁能给我解释下? 展开
$i=2;
switch($i++){
case 2:
echo '输出2<br/>';
echo $i;
break;
case 3:
echo '输出3<br/>'.$i;
break;
case 1:
echo "输出1<br/>";
break;
default:
break;
}
echo $i;
?>
输出结果:
输出2
3
我想问首先不是将2赋值给$i吗,这时$i应该为2呀,完了对应case 2,显示“输出2”,可此时$为何却变成了3?
另外FOR循环中$i++和++$i不是没区别嘛,部分先加和后加,为何SWITCH语句里分,而且像上面那短代码,$i++,先赋值2判断,而后输出却变成3,谁能给我解释下? 展开
6个回答
展开全部
for语句块中是这样的(语法结构如此)
{
你的代码
最后会执行 $i++ 或 ++$i;
}
$i++ 先返回 $i的值,然后才进行+1操作
++$i 先进行+1操作,然后进行返回
{
你的代码
最后会执行 $i++ 或 ++$i;
}
$i++ 先返回 $i的值,然后才进行+1操作
++$i 先进行+1操作,然后进行返回
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
++$i和$i++应该是没有区别的。
这里你要理解的是,程序执行的先后顺序。
swith($i++) 首先执行的是 ++这个操作, 然后括号里的值就变为了(3) 。
这只是一个很简单的情况,还有更多复杂的嵌套,一般都是从内往外从左往右解析函数语法什么的
这里你要理解的是,程序执行的先后顺序。
swith($i++) 首先执行的是 ++这个操作, 然后括号里的值就变为了(3) 。
这只是一个很简单的情况,还有更多复杂的嵌套,一般都是从内往外从左往右解析函数语法什么的
追问
如果这样最后结果不应该是跳到CASE 3上去执行吗?但实际却是执行CASE 2,即先将2赋值给switch,跳到CASE 2,然后自加,echo出“输出2” 以及“3”
这里为何会区分先加和后加的问题,而在FOR循环里单独$i++和++$i却没有区别。
望赐教,谢谢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
$i++和++$i在发生赋值时是有区别的,但是无论哪种形式都不影响自身值得自增。
例子中执行$i++后$i的值已经变化为3了。
举个例子:
$i=1;
$y=$i++; //这里的运算顺序是$y=$i;$i=$i+1
注意,此时$y的值是1,但是$i的值是自增1次后是2了。
同样:
$i=1;
$y=++$i; //这里的运算顺序是 $i=$i+1;$y=$i;
结果$y=2,$i=2
这两个例子反映了他们赋值的顺序,也说明无论使用哪种形式,都不影响变量$i自增。
例子中执行$i++后$i的值已经变化为3了。
举个例子:
$i=1;
$y=$i++; //这里的运算顺序是$y=$i;$i=$i+1
注意,此时$y的值是1,但是$i的值是自增1次后是2了。
同样:
$i=1;
$y=++$i; //这里的运算顺序是 $i=$i+1;$y=$i;
结果$y=2,$i=2
这两个例子反映了他们赋值的顺序,也说明无论使用哪种形式,都不影响变量$i自增。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一个先输出在++;一个先++再输出;所以会2 3
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询