吾爱乐享
个人学习网站

php学习之流程控制之循环

流程控制之循环

For循环

说明:循环就是自动执行某段代码、循环执行

语法:for(变量初始化;条件表达式’变量变化){

循环体;

}

  • 变量初始化:循环的开始,给一个循环的变量,如$i=1;
  • 条件表达式:必须给循环一个可以退出的条件,否则就是死循环。如$i<=10;
  • 变量变化:让初始化的值发生改变,一直到达到条件为止。$i<=10;

流程控制图:

案例:1

输出1-100

<?php

for($i=1; $i<=100;$i++){

echo $i.'<br>’;//打印结果1-100并且换行

}

?>

案例:2

输出99乘法表

//分析:首先九九乘法表是由九行九列组成,先打印九行

For($i=1;$i<10;$i++){echo $i;}这是打印九行

根据外循环控制行数,内循环控制列数,那么打印九列就是在九for循环中再套一层for循环即for($i=1;$i<=9;$i++){

For($j=1;$j<=9;$j++){

Echo “$i x $j =”.$i*$j.’ &nbsp;’;

}

echo “<br>”;

}打印出来的是一个9行9列的矩形,但是我们的乘法表是一个递减的三角形,行数不变列数逐渐递减,内部循环控制列数,也就是$j控制的表达式不是一直是9,我们可以看出第一行的时候只有一列,第二行的时候只有两列,直到第9行的时候有9列,从而可以分析出,行数和列数的增加的基数是一样的,就可以判定$j的取值范围就是$j<=$i

即:

for($i=1;$i<=9;$i++){

For($j=1;$j<=$i;$j++){

Echo “$i x $j =”.$i*$j.’ &nbsp;’;

}

echo “<br>”;

}

看出$i和$j位置反了,换一下位置即可

把Echo “$i x $j =”.$i*$j.’ &nbsp;’;

换成Echo “$jx $i =”.$i*$j.’ &nbsp;’;

<?php

for($i=1;$i<=9;$i++){

For($j=1;$j<=$i;$j++){

Echo “$j x $i =”.$i*$j.’ &nbsp;’;

}

echo “<br>”;

}

?>

案例2:打印金字塔

//打印金字塔

for($i=1; $i<=6; $i++){

for($a=6; $a>$i; $a–){

echo “&nbsp;”;

}

for($j=1; $j<=$i; $j++){

 

echo ‘*&nbsp;’;

}

echo ‘<br>’;

}

案例3打印空心菱形

echo ‘<hr>’;
//打印空心菱形
for($i=1; $i<=6; $i++){
for($a=1; $a<=6-$i; $a++){
echo “&nbsp;”;
}
for($j=1; $j<=$i*2-1; $j++){
if($i==1){
echo ‘*’;
}elseif($j==1||$j==$i*2-1){
echo ‘*’;
}else{
echo ‘&nbsp;’;
}
}
echo ‘<br>’;
}
for($i=5; $i>=1; $i–){
for($a=1; $a<=6-$i; $a++){
echo “&nbsp;”;
}
for($j=1; $j<=$i*2-1; $j++){
if($i==1){
echo ‘*’;
}elseif($j==1 || $j==$i*2-1){
echo ‘*’;
}else{
echo “&nbsp;”;
}
}
echo ‘<br>’;
}

实战案例1

一张纸的厚度是0.01毫米,则该纸对折30次后是多厚(据说超过珠穆朗玛峰的高度)。反过来,一张纸对折几次后,就超过1米厚了?

$p=0.01/1000;//把毫米换成米

for($i=1; $i<=30; $i++){

$p=$p*2;

echo "对折{$i}次后的厚度为{$p}<br>";

//判断当厚度超过1m后的次数

if($p>=1&&$p<2){

echo '<hr>';

echo '对折第'.$i.'次后的厚度超过1m';

echo '<hr>';

}

}

 

实战案例2

写一个程序输出1到100这些数字。但是遇到数字为3的倍数的时候,输出“三”替代数字,为5的倍数用“五”代替,既是3的倍数又是5的倍数则输出“三五”。

for($i=1;$i<=100;$i++){

if($i%3==0&&$i%5==0){

echo '三五';

}elseif($i%3==0){

echo '三';

}elseif($i%5==0){

echo'五';

}else{

echo $i;

}

echo '<br>';

}

while循环

语法:变量的初始值;

while(条件表达式){

循环体;

变量的变化;

循环1-100

<?php

$i=1;

while($i<=100){

echo $i;

$i++;

}

?>
案例2:99乘法表
<?php

$i=1;

while($i<=9){

$j=1;

while($j<=$i){

echo"$j x $i = ".$j*$i;

$j++;

}

echo '<br>';

$i++;

}

?>
实战案例1

假设某人有100,000现金。每经过一次路口需要进行一次交费。交费规则为当他现金大于50,000时每次需要交5%如果现金小于等于50,000时每次交5,000。请写一程序计算此人可以经过多少次这个路口。

$m=100000;

$k=1;

while($m>=5000){

if($m>50000){

$m=$m*0.95;

}elseif($m<=50000){

$m=$m-5000;

}

echo '剩余'.$m.'经过'.$k.'<br>';

$k++;

}
赞(0) 打赏
未经允许不得转载:吾爱乐享 » php学习之流程控制之循环

评论 抢沙发

评论前必须登录!

 

推荐免费资源共享,个人经验总结学习

联系我们联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏