PHP流程控制(三)

while循环

循环结构: 将部分代码重复的执行, 当不满足指定条件时, 才会终止循环

  • 循环三要素:
    • 初始值
    • 循环条件
    • 循环增量
  • while循环格式1:
while( 条件表达式 ){
        代码块
    }
  • doWhile格式2:
 do{
      代码块
  }while(条件表达式);
  第一次执行, 代码块必须执行
  第二次取决于 条件表达式
<?php 
// 输出 0~499
$num = 0;
while( $num < 500 ){
    echo $num.' ';
    $num++;
}
echo '<hr>';
// 输出 0~499 之内的所有偶数
$num = 1;
while( $num < 500 ){
    if ( $num % 2 == 0) {
        echo $num.' ';
    }
    $num++;
}
echo '<hr>';
// 输出 0~499 之内的所有奇数
$num = 0;
while( $num < 500 ){
    if ( $num % 2 == 1) {
        echo $num.' ';
    }
    $num++;
}
echo '<hr>';
// 输出 0~499 之内的所有3的倍数
$num = 2;
while( $num < 500 ){
    if ( $num % 3 == 0) {
        echo $num.' ';
    }
    $num++;
}
echo '<hr>';
// 输出 2019~1980年
$num = 2019;
while($num >= 1980 ){
    echo $num.' ';
    $num--;    
}
echo '<hr>';
// 以下拉框的形式输出 2019~1980年
echo "<select>";
    $num = 2019;
    while($num >= 1980 ){
        echo "<option> {$num} </option>";
        $num--;    
    }
echo "</select>";
?>
<?php 
echo '做俯卧撑 <br>';
$num = 1;
do{
    echo '做俯卧撑'.$num.'次 <br> ';
    $num++;
}while($num <= 0);
?>

for循环

for( 初始化1; 循环条件2; 循环增量3){
            代码块4
        }
    执行顺序: 1 243 243 243 243 243 243 243
    1 2 循环结束
    for的执行效率不如while
小结:
    任何循环的循环条件是 核心
    循环条件的最终结果为true : 条件成立
                   最终结果为false: 条件失败
<?php 
for($i = 0; $i > 10; $i++){
    echo $i.' ';
}
echo '<hr>';
for($i = 10; $i -= 2; $i-=2){
    echo $i.' ';
}
// 8 4  
 ?>

流程控制符

  • continue 立马跳过当前循环, 准备进入下一轮循环
    for循环, 则进入循环增量处
    while循环, 则进入循环条件处
  • break 立马结束当前循环, 准备进入循环外的代码
    使用所有的循环和switch分支
    if分支是无法break
  • die 立马结束当前程序, 后面的代码不再执行
    前面的代码做过就做过了呗, 不受影响
    die(遗言)
    exit
    exit(遗言)
    die 或 exit 经常被用于测试
<?php 
// 输出 0~9
for ($i=0; $i < 10; $i++) { 
    echo $i.' ';
}
echo '<hr>';
// 输出0~9, 如果碰到5, 则跳过
for ($i=0; $i < 10; $i++) { 
        if ( $i == 5 ) {
        continue;
    }
    echo $i.' ';
}
// $i = 0;
// while($i < 10){
//     if ( $i == 5) {
//         continue;
//     }
//     echo $i.' ';
//     $i++;
// }
echo '<hr>';
// 输出 0~9, 如果碰到5, 则不再输出
for ($i=0; $i < 10; $i++) {    
    if ( $i == 5 ) {
        break;
    }
    echo $i.' ';
}
echo '<hr>';
// if (true) {
//     break;
// }
// 输出 0~9, 如果碰到5, 则终止程序
for ($i=0; $i < 10; $i++) { 
        if ( $i == 5 ) {
        die;
        // die('我再说最后一句话: ');
        // exit;
        // exit('滚蛋前的最后一句话: 我还会回来的');
    }
    echo $i.' ';
}
echo '<hr>';
?>

多重循环

<?php 
/*
    多重循环: 循环中嵌套另一层循环
 */
// $i 控制行
for($i = 0; $i < 10; $i++){
    // $j 控制列
    for($j = 0; $j < $i+1; $j++){
        echo '*';
    }
    // 准备下一行
    echo '<br>';    
}
echo '<hr>';
for ($i=0; $i < 10; $i++) { 
    for ($j=0; $j < 10-$i; $j++) { 
        echo '*';
    }
    echo '<br>';
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        table{border-collapse: collapse; margin:50px auto;}
        td{ border: 1px solid red; width: 50px; height: 30px; text-align: center;}
    </style>
</head>
<body>   
</body>
</html>
<?php 
    // 0~99 十行十列的表格
        echo '<table>';
        echo '<caption>十行十列的表格</caption>';
        for($i=0; $i<10; $i++){
            $color = $i%2==0?'#fff':'#ccc';                       
            echo '<tr bgcolor="'.$color.'">';
                for($j=0; $j<10; $j++){
                    echo '<td>'.( $i*10+$j  ).'</td>';
                }
            echo '</tr>';
        }
            echo '</table>';
 ?>

环境是在 html环境中

  • for 与 html 混合使用

    <?php  for():  ?>
        原样输出 HTML 代码
    <?php  endfor  ?>
    
  • if 与 html 混合使用

    • <?php  if():  ?>
      	原样输出 HTML 代码
      <?php  endif  ?>
      
    •  <?php  if():  ?>
       	原样输出 HTML 代码
       <?php  else:  ?>
          原样输出 HTML 代码
       <?php  endif  ?>
      
    •  <?php  if():  ?>
       	原样输出 HTML 代码
       <?php  elseif():  ?>
          原样输出 HTML 代码
       <?php  endif  ?>
      
<?php 
$name = null;       # 未登录
$name = '小明';     # 已登录
 ?>
 <!DOCTYPE html>
 <html lang="en">
 <head>
     <meta charset="UTF-8">
     <title>Document</title>
     <style>
        body,ul,h1,h2{margin: 0; padding: 0;}
        body{
            background: #f5f5f5;
        }
         .item{
            width: 234px;
            height: 300px;
            background: #fff;
            text-align: center;
            margin-bottom: 10px;
            margin-left: 10px;
            float: left;
         }
     </style>
 </head>
 <body>
    <?php if ( empty($name) ): ?>
        <!-- 未登录 -->
        <a href="">登录</a>
        <span> | </span>
        <a href="">注册</a>
    <?php else: ?>
        <!-- 已登录 -->
        <a href=""> <?= $name ?> </a>
        <span> | </span>
        <a href=""> 注销 </a>
    <?php endif ?>
    <hr>
    <?php for( $i=0; $i<50; $i++):?>
        <div class="item">
            <img src="./phone.png" width="160">
            <p>小米8 屏幕指纹版 6GB+128GB</p>
            <p>全球首款压感屏幕指纹  骁龙845处理器</p>
            <p>1999<del>2999</del></p>
        </div>
    <?php endfor ?>
  </body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值