• PHP学习记录之流程控制


      1 <?php 
      2 
      3 // 流程控制
      4 
      5 // 分支结构:if和switch
      6 // if语句
      7 // 单分支
      8 if (condition) 
      9 {
     10     # code...
     11 }
     12 
     13 //双分支
     14 if (condition) 
     15 {
     16     # code...
     17 }
     18 else
     19 {
     20 
     21 }
     22 
     23 //多分支
     24 if (condition) 
     25 {
     26     # code...
     27 }
     28 elseif (condition) 
     29 {
     30     # code...
     31 }
     32 elseif (condition) 
     33 {
     34     # code...
     35 }
     36 else
     37 {}
     38 
     39 //switch分之
     40 //switch 语句类似于具有同一个表达式的一系列 if 语句。很多场合下需要把同一个变量(或表达式)与很多不同的值比较,并根据它等于哪个值来执行不同的代码。
     41 
     42 // 仅当一个 case 语句中的值和 switch 表达式的值匹配时 PHP 才开始执行语句,直到 switch 的程序段结束或者遇到第一个 break 语句跳出分支为止。如果不在 case 的语句段最后写上 break 的话,PHP 将继续执行下一个 case 中的语句段。当所有的case值都不与switch中的值相等时,将执行default语句。
     43 // 上面所谓的相等指的是模糊相等==,而不是严格相等===。
     44 $a = null;
     45 switch ($a) 
     46 {
     47     case 66:
     48         echo "<br>值是:66";
     49         // break;
     50     case false:
     51         echo "<br>值是:false"; //模糊相等
     52         break;
     53     case 88:
     54 
     55     default:
     56         echo "<br>值是:其他";
     57 }
     58 
     59 
     60 //循环结构
     61 
     62 // while循环
     63 
     64 $a=1; //循环变量的初始化
     65 $s=0;
     66 while ($a <= 10)  //条件
     67 {
     68     $s += $a; //操作
     69     $a++; //循环变量的改变,通常写在循环体的最后位置
     70 }
     71 
     72 echo "和为$s"; //55
     73 
     74 
     75 // do while循环
     76 // do-while 循环和 while 循环非常相似,区别在于表达式的值是在每次循环结束时检查而不是开始时。和一般的 while 循环主要的区别是 do-while 的循环语句保证会执行一次(表达式的真值在每次循环结束后检查)。
     77 /*
     78 do
     79 {
     80     #循环体语句; // 一定会执行
     81 }
     82 while (条件判断);
     83 */
     84 
     85 // for循环
     86 
     87 
     88 // for (expr1; expr2; expr3)
     89 //     statement
     90 
     91 // 第一个表达式(expr1)在循环开始前无条件求值(并执行)一次。 
     92 
     93 // expr2 在每次循环开始前求值。如果值为 TRUE,则继续循环,执行嵌套的循环语句。如果值为 FALSE,则终止循环。 
     94 
     95 // expr3 在每次循环之后被求值(并执行)。 
     96 
     97 // 每个表达式都可以为空或包括逗号分隔的多个表达式。
     98 
     99 $sum=0;
    100 for ($a=1; $a <= 100 ; $a++) { 
    101     if ($a%7 == 0) 
    102     {
    103         $sum += $a;
    104     }
    105 }
    106 echo $sum;  //735
    107 echo "<br>";
    108 
    109 
    110 //循环嵌套
    111 //输出九九乘法表
    112 
    113 for ($i=1; $i <= 9; $i++) 
    114 { 
    115     for ($j=1; $j < $i+1; $j++) 
    116     { 
    117         echo "{$j} x {$i} = ".($j*$i)." ";
    118     }
    119     echo "<br>";
    120 }
    121 
    122 //公鸡5元一只,母鸡3元一只,小鸡1元三只,100元买100只鸡,有多少种组合?
    123 
    124 for ($gj=0; $gj <= 100/5; $gj++) 
    125 { 
    126     for ($mj=0; $mj <= (100-$gj*5)/3 ; $mj++) 
    127     {         
    128         $xj = 100 - $gj -$mj;
    129         if($gj+$mj+$xj==100 && $gj*5+$mj*3+$xj/3==100)
    130         {
    131             echo "<br>公鸡:$gj 只,母鸡:$mj 只,小鸡:$xj 只";
    132         }
    133     }
    134 }
    135 /*结果为:
    136 公鸡:0 只,母鸡:25 只,小鸡:75 只
    137 公鸡:4 只,母鸡:18 只,小鸡:78 只
    138 公鸡:8 只,母鸡:11 只,小鸡:81 只
    139 公鸡:12 只,母鸡:4 只,小鸡:84 只
    140 
    141 */
    142 
    143 //输出金字塔图案
    144 echo "<br>金字塔图案<br>";
    145 /*
    146 
    147  
    148    *
    149   ***
    150  *****
    151 *******
    152 
    153 */
    154 $n=10;
    155 for ($i=1; $i <= $n; $i++) 
    156 { 
    157     for ($j=1; $j <= $n-$i;$j++) { 
    158         echo "&nbsp;";
    159     }
    160     for ($k=1; $k <= $i*2-1;$k++) { 
    161         echo "*";
    162     }
    163     echo "<br>";
    164 }
    165 
    166 
    167 //break 中断循环
    168 //break 结束当前 for,foreach,while,do-while 或者 switch 结构的执行。 
    169 
    170 // break 可以接受一个可选的数字参数来决定跳出几重循环。 
    171 for ($i=0; $i < 10 ; $i++) { 
    172     for ($j=0; $j < 10; $j++) { 
    173         echo "hahah";
    174         break 2; //退出外围的2层循环
    175     }
    176 }
    177 
    178 //continue 跳出循环
    179 //continue 在循环结构用用来跳过本次循环中剩余的代码并在条件求值为真时开始执行下一次循环。
    180 //
    181 echo "<br>";
    182 for ($i=0; $i < 10 ; $i++) { 
    183     echo "<br>hehe";
    184     continue ; // 也可以带参数 
    185     for ($j=0; $j < 10; $j++) { 
    186         echo "<br>hahah";
    187         
    188     }
    189 }
    190 
    191 
    192 ?>

  • 相关阅读:
    Django基础二之URL路由系统
    Django基础一之web框架的本质
    HTTP协议超级详解
    动态规划-背包问题
    java 中对象比较大小
    排序算法
    泛型
    打jar包和使用jar包
    Mongodb中Sharding集群
    linux时间同步,ntpd、ntpdate
  • 原文地址:https://www.cnblogs.com/wangyi0419/p/12364733.html
Copyright © 2020-2023  润新知