欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

PHP流程控制(三)

程序员文章站 2024-02-17 22:29:04
...

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>
相关标签: PHP流程控制