博客列表 >PHP分支结构及循环

PHP分支结构及循环

零龙
零龙原创
2020年07月07日 19:34:351730浏览

PHP分支结构

分支结构是程序在执行过程中依照需求条件来改变程序执行的顺序。即满足条件时就执行某一叙述块,反之则执行另一叙述块。在程序中使用分支结构可以有以下几种形式:

  • 单一条件分支结构.
  • 双向条件分支结构.
  • 多向条件分支结构.
  • 巢状条件分支结构.
    单一条件分支和多条件IF与IF ELSE
  • if结构是单一条件分支结构,if语句的基本格式是对一个表达式进行计算,根据计算结果决定是否执行后面的语句。if后面小括号中的“表达式”就是执行的条件,条件返回的结果只能是布尔型值。其通常是由比较运算符或者逻辑运算符组成的表达式所计算的结果值,或是一些返回布尔型的函数等。如果是传入其他类型的值,也会自动转换为布尔型的TRUE或FALSE。如果表达式为TRUE,则执行代码块,否则不执行。

示例

  1. <?php
  2. $fraction = 50;
  3. //定义一个整数
  4. if($fraction>=60 && $fraction<=70){
  5. echo"您的分数及格了,继续努力哦!";
  6. echo "<br>";
  7. }
  8. //单分支判断整数大于等于60或者小于等于70
  9. echo "<hr>";
  10. if($fraction >=60 && $fraction <=70):
  11. echo "您的分数及格了,继续努力哦!";
  12. echo "<br>";
  13. endif;
  14. //模板语法单分支判断整数大于等于60或者小于等于70
  15. echo "<hr>";
  16. if($fraction>70 && $fraction<=80){
  17. echo "在努力点您能进入前10了!";
  18. echo "<br>";
  19. }
  20. else if($fraction>=60 && $fraction<=70)
  21. {
  22. echo"您的分数及格了,继续努力哦!";
  23. echo "<br>";
  24. }
  25. else if($fraction>=90 && $fraction<100){
  26. echo"胜利就在脚下,成功和您一步之遥!";
  27. echo "<br>";
  28. }
  29. else if($fraction==100){
  30. echo"功夫不负有心人,恭喜您拿到了满分!";
  31. echo "<br>";
  32. }
  33. else{
  34. echo "您的分数我不告诉告诉您,醒醒吧少年!";
  35. echo "<br>";
  36. }
  37. echo "<hr>";
  38. //多分支判断分数对应的条件
  39. if($fraction >=60 && $fraction <=70): echo "您的分数及格了,继续努力哦!";
  40. elseif($fraction>70 && $fraction<=80): echo "在努力点您能进入前10了!";
  41. elseif($fraction>=90 && $fraction<100): echo"胜利就在脚下,成功和您一步之遥!";
  42. elseif($fraction==100):echo"功夫不负有心人,恭喜您拿到了满分!";
  43. else :echo "您的分数我不告诉告诉您,醒醒吧少年!";
  44. endif;
  45. //多分支判断分数对应的条件、重点:当分数等于100的时运算符必须是两个等号==
  46. echo "<hr>";

示例图

  • 示例中用了普通写法和模板写法,if在条件的编写中有些烦琐,不过用模板写相对来说明了点。

Switch

用于根据多个不同条件执行不同动作。

首先对一个简单的表达式 n(通常是变量)进行一次计算。将表达式的值与结构中每个 case 的值进行比较。如果存在匹配,则执行与 case 关联的代码。代码执行后,使用 break 来阻止代码跳入下一个 case 中继续执行。default 语句用于不存在匹配(即没有 case 为真)时执行。

示例:

  1. <?php
  2. $fraction = 81;
  3. switch($fraction){
  4. case $fraction>=60 && $fraction<70:
  5. echo "您的分数及格了,继续努力哦!";
  6. echo $fraction;
  7. break;
  8. case $fraction>=70 && $fraction<80:
  9. echo "您的分数很一般,继续努力哦!";
  10. break;
  11. case $fraction>=80 && $fraction<90 :
  12. echo "在努力点您能进入前10了!";
  13. break;
  14. case $fraction>=90 && $fraction<100 :
  15. echo "继续努力,成功和您一步之遥!";
  16. break;
  17. case $fraction==100 :
  18. echo "恭喜您获得最高成绩,继续保持!";
  19. break;
  20. default:
  21. echo "少年很遗憾,忘记您的分数吧!";
  22. }

示例中使用了swith多条件查询,相对if使用switch更加简洁方便。case可以使用条件查询,也可以使用对等查询,本示例是查询分数对应的话,使用了条件查询。

示例图

PHP 循环

在您编写代码时,您经常需要让相同的代码块一次又一次地重复运行。我们可以在代码中使用循环语句来完成这个任务。
在 PHP 中,提供了下列循环语句:

  • while - 只要指定的条件成立,则循环执行代码块
  • do…while - 首先执行一次代码块,然后在指定的条件成立时重复这个循环
  • for - 循环执行代码块指定的次数
  • foreach - 根据数组中每个元素来循环代码块

while 循环

while 循环将重复执行代码块,直到指定的条件不成立。

语法

  1. while (条件)
  2. {
  3. 要执行的代码;
  4. }

示例:

  1. <?php
  2. $i = 0;
  3. $num = 0;
  4. while($i<100){
  5. $i++;
  6. $num = $num + $i;
  7. }
  8. echo $num;
  9. echo "<hr>";
  10. //假如投资的年利率为5%,试求从1000块增长到5000块,需要花费多少年
  11. $m = 1000;
  12. $m1 = 5000;
  13. $i = 0;
  14. while($m<$m1)
  15. {
  16. $m = $m + $m*0.05;
  17. $i = $i+1;
  18. }
  19. echo $i;

示例中用1加到100最后的和是5050,用了一个小案例加深对while的理解,重点i=0表示执行完1次是1年,。

示例图:

do…while 语句

do…while 语句会至少执行一次代码,然后检查条件,只要条件成立,就会重复进行循环。

语法

  1. do
  2. {
  3. 要执行的代码;
  4. }
  5. while (条件);

示例:

  1. <?php
  2. $i = 0;
  3. $num = 0;
  4. do{
  5. $i++;
  6. $num = $num + $i;
  7. }
  8. while($i<100);
  9. echo $num;
  10. echo "<hr>";
  11. //假如投资的年利率为5%,试求从1000块增长到5000块,需要花费多少年
  12. $m = 1000;
  13. $m1 = 5000;
  14. $i = 1;
  15. do{
  16. $m = $m + $m*0.05;
  17. echo "第".$i."年".$m."<br>";
  18. $i++;
  19. }while($m<$m1);

示例用do..while和while不同的是在定义计数器的初始值,在while中$i=0,在do while中由于执行完一次代码在来循环,所有$i=1。
示例图

for 循环

for 循环用于您预先知道脚本需要运行的次数的情况。

语法

  1. for (初始值; 条件; 增量)
  2. {
  3. 要执行的代码;
  4. }

注释:上面的初始值和增量参数可为空,或者有多个表达式(用逗号分隔)

参数:
  • 初始值:主要是初始化一个变量值,用于设置一个计数器(但可以是任何在循环的开始被执行一次的代码)。
  • 循环执行的限制条件。如果为 TRUE,则循环继续。如果为 FALSE,则循环结束。
  • 主要用于递增计数器(但可以是任何在循环的结束被执行的代码)。

示例:

  1. <?php
  2. $num = 0;
  3. for($i=0;$i<=100;$i++){
  4. $num = $num + $i;
  5. }
  6. echo $num;
  7. //假如投资的年利率为5%,试求从1000块增长到5000块,需要花费多少年
  8. echo "<br>";
  9. $m = 1000;
  10. $m1 = 5000;
  11. for($i=0;$m<$m1;$i++)
  12. {
  13. $m = $m + $m * 0.05;
  14. }
  15. echo "第".$i."年".$m."<br>";
  16. echo "<hr>";
  17. for($i=1;$i<=9;$i++)
  18. {
  19. for($j=1;$j<=$i;$j++){
  20. echo $i."X".$j ."=". $i * $j;
  21. }
  22. echo "<br>";
  23. }
  24. echo "<hr>";
  25. $mx = array('刘德华','张学友','郭富城','黎明');
  26. for($i=0; $i<count($mx);$i++)
  27. {
  28. echo "mx[".$i."]=>".$mx[$i];
  29. echo "<br>";
  30. }
  31. echo "<hr>";
  32. $arr=array(array("张三","20","男"),
  33. array("李四","25","男"),
  34. array("王五","19","女"),
  35. array("赵六","25","女"));
  36. for($i=0;$i<count($arr);$i++){
  37. for($j=0;$j<count($arr)-1;$j++){
  38. echo $arr[$i][$j];
  39. }
  40. }

示例中同样的用1到100的累加,和对年利率的计算,for相比while要简便的多。也是PHP中常用的循环,示例中还用for写了99乘法表和对数组的遍历。在数组遍历中使用了count函数得到数组的长度。

示例图:

foreach 循环用于遍历数组

  1. foreach ($array as $value)
  2. {
  3. 要执行代码;
  4. }

每进行一次循环,当前数组元素的值就会被赋值给 $value 变量(数组指针会逐一地移动),在进行下一次循环时,您将看到数组中的下一个值。

示例

  1. <?php
  2. $ll= array('金银花','女','23','13654548778','57545@qq.com');
  3. foreach($ll as $value){
  4. echo $value;
  5. echo "<br>";
  6. }
  7. echo "<hr>";
  8. $bm = array("市场部"=>"李逵","产品部"=>"王凯","财务部"=>"刘林峰");
  9. foreach($bm as $key => $value)
  10. {
  11. echo "优秀部门-".$key;
  12. echo "<br>";
  13. echo "姓名优秀员工-:".$value;
  14. echo "<br>";
  15. }
  16. echo "<hr>";
  17. $wage = array(
  18. "市场部"=>array("企业组"=>
  19. array(1,"李某","市场经理",8000),
  20. array(2,"王某","市场专员",5000),
  21. array(3,"刘某","市场专员",7000)
  22. ),
  23. "产品部"=>array("包装组"=>
  24. array(1,"李某","产品经理",9000),
  25. array(2,"王某","产品专员",6000),
  26. array(3,"刘某","产品专员",5000)
  27. ),
  28. "账务部"=>array("会计组" =>
  29. array(1,"李某","账务经理",7000),
  30. array(2,"王某","账务专员",6000),
  31. array(3,"刘某","账务专员",5000)
  32. )
  33. );
  34. foreach($wage as $key => $value)
  35. {
  36. echo "<table style='max-width: 500px;background: #000;'cellspacing='1'>";
  37. echo "<caption>".$key."</caption>";
  38. echo "<tr style='background: #fff;'><th>编号</th><th>姓名</th><th>职务</th><th>月薪</th></tr>";
  39. foreach($value as $ka => $v)
  40. {
  41. echo "<tr style='background: #fff;'>";
  42. foreach($v as $b => $c)
  43. {
  44. echo "<td>".$c."</td>";
  45. }
  46. echo "</tr>";
  47. }
  48. echo "</tr></table>";
  49. }

示例中使用foreach对一、二维数、多维数组组遍历,结合HTML做一个表的输出,在多维数组的使用中定义了循环变量,对多维数组输出

示例图

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议