博客列表 >理解并演示分支控制(多分支与switch)和循环(for,while)-(0706)

理解并演示分支控制(多分支与switch)和循环(for,while)-(0706)

丶久而旧之丶
丶久而旧之丶原创
2020年07月18日 11:39:51826浏览

操作符

1.比较运算符

  1. var_dump(10 > 20);//返回flase
  2. // "==" 值比较,当前操作符两边操作类型不一致,会触发类型的自动转换主要体现在数值上
  3. var_dump(50 == '50');//返回true
  4. // "===" 值比较,当前操作符两边的值和操作类型必须一致才返回true
  5. var_dump(50 === '50');//返回flase
  6. // 太空船运算符(推荐)
  7. var_dump(50 <=> 40);//返回(1)代表左边的数值大
  8. var_dump(40 <=> 50);//返回(-1)代表右边的数值大
  9. var_dump(50 <=> 50);//返回(0)代表两边的数值一样

2.逻辑运算符

  1. // "&&"逻辑与运算符:两边表达式除非全部为true,否则返回flase
  2. var_dump((20>10) && (10<5));//返回flase
  3. // "||"逻辑或运算符:两边表达式只要有一个为true,就返回true
  4. var_dump((20>10) || (10<5));//返回true
  5. // "!"逻辑非运算符:表达式为true时返回flase,表达式为flase时返回true
  6. var_dump (!((20>10) || (10<5)));//返回flase
  7. // "Xor"逻辑异或运算符:表达式有且只有一个true,返回true否则返回flase
  8. var_dump((20>10) Xor (10>5));//返回flase
  9. var_dump((20>10) Xor (10<5));//返回true
  • 短路求值
  1. // 如果第一个表达式为flase,则会直接执行else分支,不会再去计算第二个表达式
  2. if ($name && $name === 'admin'){
  3. echo $name.'欢迎您';
  4. }else {
  5. echo '对不起您还未登录','<hr>';
  6. }//返回'对不起您还未登录'
  7. // 定义了变量那么第一个表达式为true时,才会去计算第二个表达式的布尔值
  8. $name = 'adm';
  9. if ($name && $name === 'admin'){
  10. echo $name.'欢迎您';
  11. }else {
  12. echo '对不起您还未登录','<hr>';
  13. }//返回'对不起您还未登录'
  14. // 定义变量
  15. $name = 'admin';
  16. if ($name && $name === 'admin'){
  17. echo $name.'欢迎您','<hr>';
  18. }else {
  19. echo '对不起您还未登录';
  20. }//返回'admin欢迎您'

3.三元运算符

  1. // 三元运算符
  2. // 三元:是指由三个表达式,以为着有两个操作符
  3. // 简化短路求值代码
  4. echo ($name && $name === 'admin') ? $name.'欢迎您':'对不起您还未登录','<hr>';
  5. $name = 'admin';
  6. echo ($name && $name === 'admin') ? $name.'欢迎您':'对不起您还未登录';
  • null 合并运算符(相当于简化的三元运算符)
  1. $name = 'admin'.'欢迎您';
  2. echo $name ?? '对不起您还未登录';

分支控制

1. 双分支

  1. // 获取随机数
  2. $num = rand(1,10);
  3. if($num<2) {
  4. $check = '您点数为'.$num.',恭喜您中了一等奖';
  5. }else{
  6. $check = '您点数为'.$num.',很遗憾您没有中奖';
  7. }
  8. echo $check;

2.多分支

  1. $num = rand(1,10);
  2. if($num == 1) {
  3. $check = '您点数为'.$num.',恭喜您中了一等奖';
  4. }elseif($num == 2){
  5. $check = '您点数为'.$num.',恭喜您中了二等奖';
  6. }elseif($num == 3){
  7. $check = '您点数为'.$num.',恭喜您中了三等奖';
  8. }elseif($num>3){
  9. $check = '您点数为'.$num.',很遗憾您没有中奖';
  10. }
  11. echo $check;

3.switch(简化多分支)

  1. $num = rand(1,10);
  2. switch($num) {
  3. case 1:
  4. $check = '您点数为'.$num.',恭喜您中了一等奖';
  5. break;
  6. case 2:
  7. $check = '您点数为'.$num.',恭喜您中了二等奖';
  8. break;
  9. case 3:
  10. $check = '您点数为'.$num.',恭喜您中了三等奖';
  11. break;
  12. default:
  13. $check = '您点数为'.$num.',很遗憾您没有中奖';
  14. }
  15. echo $check;

  • 模板语法(去掉大括号,以便和 html 混编时更好匹配大括号)
  1. $num = rand(1,10);
  2. if($num == 1) :
  3. $check = '您点数为'.$num.',恭喜您中了一等奖';
  4. elseif($num == 2):
  5. $check = '您点数为'.$num.',恭喜您中了二等奖';
  6. elseif($num == 3):
  7. $check = '您点数为'.$num.',恭喜您中了三等奖';
  8. elseif($num>3):
  9. $check = '您点数为'.$num.',很遗憾您没有中奖';
  10. endif;
  11. echo $check;

循环控制

  • 不使用循环获得数组的值
  1. $arr = ['南昌','赣州','九江','吉安','景德镇'];
  2. echo current($arr),'<hr>';
  3. next($arr);
  4. echo current($arr),'<hr>';
  5. next($arr);
  6. echo current($arr),'<hr>';
  7. next($arr);
  8. echo current($arr),'<hr>';
  9. next($arr);
  10. echo current($arr),'<hr>';

1.while 循环:入口判断型(简化上方)

  1. while($arrs = current($arr)){
  2. echo $arrs,'<hr>';
  3. next($arr);
  4. }

2.do…while..循环:出口判断型(先执行一次再判断是否符合循环的条件)

  • 因为是先执行再判断,第一次执行的时候’$arrs’ 还未被定义,所以数组的第一个值没被取出
  1. do{
  2. echo $arrs,'<hr>';
  3. next($arr);
  4. }while($arrs = current($arr));

3.for 循环:for(初始化;循环条件;递增项)

  1. for($v = 0;$v<count($arr);$v++){
  2. echo $arr[$v],'<hr>';
  3. }
  • 可以进行选择性的输出

4.用 for 循环遍历二维数组

  1. <?php
  2. $arr = [
  3. ['id'=>1,'name'=>'张三','age'=>30],
  4. ['id'=>2,'name'=>'李四','age'=>40],
  5. ['id'=>3,'name'=>'王五','age'=>50],
  6. ];
  7. ?>
  8. <!DOCTYPE html>
  9. <html lang="en">
  10. <head>
  11. <meta charset="UTF-8">
  12. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  13. <title><?php echo 'php和html混编'?></title>
  14. <style>
  15. .tab{
  16. border-collapse:collapse;
  17. border:1px solid black ;
  18. }
  19. </style>
  20. </head>
  21. <body>
  22. <table class=tab border="1">
  23. <?php for($v = 0;$v<count($arr);$v++):?>
  24. <tr>
  25. <td><?php echo $arr[$v]['id']?></td>
  26. <td><?php echo $arr[$v]['name']?></td>
  27. <td><?php echo $arr[$v]['age']?></td>
  28. </tr>
  29. <?php endfor?>
  30. </table>
  31. </body>
  32. </html

总结

1.了解了分支控制(if多分支,switch)
2.遍历数组的操作了解
3.要多敲代码,熟悉代码(前面学过的html表格间距合并怎么操作都快忘了 囧)

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议
灭绝师太2020-07-18 14:14:541楼
前端知识也别落下,前端h5 input type属性增加的几个属性值蛮强大的,css3新增的动画效果有兴趣可以了解下。