博客列表 >分支机构(if和switch)与循环(for与while)

分支机构(if和switch)与循环(for与while)

简行
简行原创
2020年07月07日 16:27:22736浏览

一.分支结构

1.单分支

  1. <?php
  2. // 单分支
  3. $money = 6000;
  4. // 正常写法
  5. if($money>=5000){
  6. echo "要交个税了";
  7. }
  8. //简写
  9. if($money>=5000) echo "要交个税了";

2.双分支

  1. <?php
  2. //双分支
  3. $sex = 3;
  4. if($sex==1){
  5. echo "男生";
  6. }else{
  7. echo "女生";
  8. }
  9. // 模板语法: 就是替换掉流程控制中的大括号
  10. // 将起始大括号用冒号代替,将结束大括号用特殊关键字代替
  11. if($sex==1):
  12. echo "男生";
  13. else:
  14. echo "女生";
  15. endif;

3.多分支

  1. <?php
  2. // 多分枝
  3. $hour = 100;
  4. if($hour>=6 && $hour<12 ){
  5. echo "上午";
  6. } elseif($hour>=12 && $hour<18){
  7. echo "下午";
  8. } elseif ($hour>=18 && $hour<24){
  9. echo "晚上";
  10. }else{
  11. echo "凌晨";
  12. }
  13. // 模板语法: 就是替换掉流程控制中的大括号
  14. // 将起始大括号用冒号代替,将结束大括号用特殊关键字代替
  15. if($hour>=6 && $hour<12 ):
  16. echo "上午";
  17. elseif($hour>=12 && $hour<18):
  18. echo "下午";
  19. elseif ($hour>=18 && $hour<24):
  20. echo "晚上";
  21. else:
  22. echo "凌晨";
  23. endif;

4.switch: 用来简化多分支

  1. <?php
  2. // switch (表达式) {
  3. // case 条件1:
  4. // 分支语句...
  5. // break;
  6. // case ...
  7. // default:
  8. // ....
  9. // }
  10. $grade =0;
  11. switch($grade){
  12. case 2:
  13. echo "白银等级";
  14. break;
  15. case 4:
  16. echo "黄金等级";
  17. break;
  18. case 6:
  19. echo "钻石等级";
  20. break;
  21. case 8:
  22. echo "王者等级";
  23. break;
  24. default:
  25. echo "青铜等级";
  26. }
  27. // 模板语法
  28. switch($grade):
  29. case 2:
  30. echo "白银等级";
  31. break;
  32. case 4:
  33. echo "黄金等级";
  34. break;
  35. case 6:
  36. echo "钻石等级";
  37. break;
  38. case 8:
  39. echo "王者等级";
  40. break;
  41. default:
  42. echo "青铜等级";
  43. endswitch;

二.循环变量数组

1.判断型循环: 入口判断型 while(条件) {…}

  1. <?php
  2. $day_arr = ['星期一','星期二','星期三','星期四','星期五','星期六','星期七'];
  3. // current():返回数组中的当前元素的值。
  4. // 每个数组中都有一个内部的指针指向它的"当前"元素,初始指向插入到数组中的第一个元素。
  5. while($day = current($day_arr)){
  6. echo $day,"<br>";
  7. // next():将内部指针指向数组中的下一个元素,并输出
  8. next($day_arr);
  9. }
  10. // 模板写法
  11. reset($day_arr); //数组指针复位,重新指向第一个
  12. while($day = current($day_arr)):
  13. echo $day,"<br>";
  14. // next():将内部指针指向数组中的下一个元素,并输出
  15. next($day_arr);
  16. endwhile;

2.判断型循环: 出口判断型 do {…} while(条件)

  1. <?php
  2. $day_arr = ['星期一','星期二','星期三','星期四','星期五','星期六','星期七'];
  3. do {
  4. echo $day , '<br>';
  5. // 循环体内必须要有更新循环条件的语句,否则进入死循环,
  6. next($day_arr);
  7. } while ($day = current($day_arr));
  8. // do - while 没有对应的模板语法
  1. 计数型循环: for (循环变量的初始化; 循环条件; 更新循环条件){….}
  1. <?php
  2. $day_arr = ['星期一','星期二','星期三','星期四','星期五','星期六','星期七'];
  3. for($i=0;$i<count($day_arr);$i++){
  4. echo $day_arr[$i] , '<br>';
  5. }
  6. // 模板语法
  7. for($i=0;$i<count($day_arr);$i++):
  8. if($i==3 || $i ==5){
  9. continue; //跳过循环,继续下个
  10. }
  11. echo $day_arr[$i] , '<br>';
  12. endfor;

总结

1.while(条件) {…} 是先判断再循环,而do {…} while(条件) 是先循环再判断;
2.循环必须有跳出循环条件,不然会死循环;
3.do {…} while(条件)没有模板语法,也不常用;

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