前端PHP入门-007-流程控制
在之前我们已经使用过if判断语句
基本语法,不能有半点马乎,完全是语法规范规定的,不这么写就错!
简单看看
<?php
//定义是否打赏的变量
$dashang = true;
if($dashang){
exit('如果不打赏,我不写这个教程了');
}
?>
<?php//定义是否打赏的变量$dashang = true;if($dashang){exit('如果不打赏,我不写这个教程了');}?>
说明:
//if单行判断if(布尔值判断)只写一句话;后续代码//if多行判断 --推荐写法,不要省略大括号if(布尔值判断){可以写多句话;}后续代码
if语句
小设计:计算机
<form><input type="text" name="num1"><select name="fh"><option value="jia"> + </option><option value="jian"> - </option><option value="c"> x </option><option value="chu"> / </option><option value="qy"> % </option></select><input type="text" name="num2"><input type="submit" value="运算" /></form>
<?php$num1 = $_GET['num1'];$num2 = $_GET['num2'];$fh = $_GET['fh'];if(!is_numeric($num1) || !is_numeric($num2)){echo '请输入数值类型';}if($fh == 'jia'){echo $num1 . '+' . $num2 . '=' . ($num1+$num2);}if($fh=='jian'){echo $num1 . '-' . $num2 . '=' . ($num1-$num2);}if($fh=='c'){echo $num1 . 'x' . $num2 . '=' . ($num1*$num2);}if($fh=='chu'){echo $num1 . '/' . $num2 . '=' . ($num1/$num2);}if($fh=='qy'){echo $num1 . '%' . $num2 . '=' . ($num1%$num2);}?>
我知道使用JS也可以完成,但是我们要只要练习的目的
课堂练习作业:
写一个平年、闰年计算器。写一个form表单,通过get将年份给传来过来,判断传进来的年份是否为数值类型。并且要求,如果是闰年就提示这是闰年,如果是平年就提示这一年是平年。
平年闰年规则:年份能被4整除,但是不能被100整除。 或者能被400整除,即为闰年,其他情况全为平年
## 嵌套if…else…elseif结构
基本上到这里都是举示例为成绩
<?phpif(判断语句1){执行语句体1}elseif(判断语句2){执行语句体2}else if(判断语句n){执行语句体n}else{最后的else语句可选}//后续代码?>
上述结构表示:
- 如果判断语句1的值为真,则执行语句体 1。执行完成后进入后续代码段。
- 否则转入后面的判断语句2(elsif),判断语句2若为真,则执行语句体 2。
- 否则转入后面的判断语句n(elsif),判断语句2若为真,则执行语句体 n。
- 如果均不匹配则执行else语句。这种循环嵌套可以不含else语句,即只含有if、elseif语句。
注:elseif()也可以写成else if()[推荐写法]
代码执行流程图

作业:
写一个网页grade.html,向panduan.php页面以post方式提交分数段.
- 0—-60以下,不及格
- 60—70及格了,要努力
- 70—80 还不错
- 80—90 上清华有希望
- 90—100 你这辈子没希望了
- 100 更没希望了
- 100分以上 爱因斯坦转世啊,思密达!
不是一个数值类型或者小于0 请输入正确的分数
## if语句多种嵌套
在if语句中可以嵌套一个或多个if语句,以实现对多个参数的判断,这就是if语句的多种嵌套。其结构形式如下:
<?phpif(判断1){if(判断2){代码段 1}else{代码段2}}else{if(判断3){代码段3}else{代码段4}}?>
流程图

注意:
我们在代码段1,2,3,4中可以再加入判断。根据实际情况还可以再加入嵌套
注意缩进,缩进的作用只是使代码富有层次感,美观易读,对目标代码的生成毫无影响。
技巧:使用大括号,大括号,大括号,让代码清晰
分支结构switch语句的使用
语法
<?php
switch(变量){ //字符串,整型
case 具体值:
执行代码;
break;
case 具体值2:
执行代码2;
break;
case 具体值3:
执行代码3;
break;
default:
}
?>
说明
1\. 上面的break是可选的
2\. 上面的default也是可选的
3\. 不要在case 后面写成分号,后面是冒号:
4\. 不要在case后面写判断区间,如($foo > 20 或者 $foo == 30)
5\. switch里面在变量最好是 整型,字符串,因为布尔判断更适合if...else..
流程图
<?phpswitch(变量){ //字符串,整型case 具体值:执行代码;break;case 具体值2:执行代码2;break;case 具体值3:执行代码3;break;default:}?>
说明
1\. 上面的break是可选的2\. 上面的default也是可选的3\. 不要在case 后面写成分号,后面是冒号:4\. 不要在case后面写判断区间,如($foo > 20 或者 $foo == 30)5\. switch里面在变量最好是 整型,字符串,因为布尔判断更适合if...else..
流程图

代码实验室
<?php//定义出行工具$tool=rand(1,6);switch($tool){case 1:echo '司机开车';break;case 2:echo '民航';break;case 3:echo '自己家的专机';break;case 4:echo '火车动车';break;case 5:echo '骑马';break;case 6:echo '游轮';break;}?>```----------# 循环语句的使用## 语法```php<?php//定义需要往返的次数,老外喜欢从0开始计数,我们也从0开始计$count = 0;//while后面接布尔值判断,为真执行,为假停止//$count 小于3的时候执行,也就是$count为0至3的时候执行//如果$count不小于3了,循环停止执行后续的代码//循环开始处while($count < 3){echo '我是胖先生,休息的第' . $count .'天<br />';//每次执行让$count+1,这样的话,就不会产生$count永远小于3的情况了$count++;//循环结束}echo '后续代码';?>
逻辑图

# while循环
while是一个布尔型循环,while(布尔判断)的值为true就执行大括号括起来的代码。如果为假就停出去,执行后续代码。
完成效果图如下:

第一步: 完成100个单元格的输出
第二步: 完成10行的操作
第三步: 设置斑马线
完整代码:
<?php$i=0;echo '<table width="800" border="1">';while($i<100){//0 - 9 为一行//10 -19 为一行//因此,每一行都能够被10求默,如为为10的时候,应该显示行开始的标签if($i%10 == 0){if($i%2==0){echo '<tr>';}else{echo '<tr bgcolor="pink">';}}echo '<td>'.$i.'</td>';$i++;//同理,每一行结束是不是应该有一个</tr>结束标签呢?if($i%10==0){echo '</tr>';}}echo '</table>';?>
改进代码双层循环
- 先输出表格标签
- 通过第一层循环再输出行标签
- 在第一层循环里面再插入一层循环输出标签
<?phpecho '<table width="800" border="1">';$i=0;while($i<10){echo '<tr>';$j=0;while($j<10){echo '<td>'.$j.'</td>';$j++;}echo '</tr>';$i++;}echo '</table>';?>```练习题:九九乘法表----------# do...while循环的区别do...while与while的语法结构基本一样,也是一个布尔型循环,功能也基本一样。## 语法```phpdo {//代码块} while (判断);
代码
do…while与while的区别是,它们的值的检查时机不同。
do-while 不论while判断是否成立,先执行一次代码代码块循环语句,保证会执行一次(表达式的真值在每次循环结束后检查)。
然而我们之前的while循环会检查布尔判断区域,成立则执行。不成立则不执行。
<?php$i = 0;do {echo $i;} while ($i > 0);?>
上面代码中,$i 肯定不大于0,也执行了。
当然,你还不能理解,实在想不到应用场景也没关系,可以完全跳过此块。
do…while用的情况比较少。我们有可能用在资源处理如:文件打开等地方。
# for循环控制语句
for 循环是 PHP 中的一种计数型循环,它的语法比较数活多变。这是一个必须要掌握的知识点。
## 语法
```
for (表达示1; 表达示2; 表达示3){
需要执行的代码段
}
+ 表达式1 是初始化赋值,可以同时赋值`多个代码`。+ 表达示2 在每次循环开始前求值。如果值为 TRUE,则继续循环,执行嵌套的循环语句。如果值为 FALSE,则终止循环。+ 表达示3 在每次循环之后被求值。## 代码```php<?phpfor ($i = 1; $i <= 10; $i++) {echo '不知道是第'.$i.'次相亲,已经麻木了!<br />';}?>
使用For循环完成这种效果

重点-控制循环
| 语句 | 作用 |
|---|---|
| exit | exit之前我们讲过了,从当前处停止后续执行 |
| break | 之前遇到过,跳出循环或者跳出结构体执行后续代码 |
| continue | 跳出此次循环,下次循环继续 |
<?phpfor ($i = 1; $i <= 10; $i++) {if($i == 4){//待会儿换成contiune试试break;}echo '不知道是第'.$i.'次相亲,已经麻木了!<br />';}echo '结束了,结束了';?>
## goto语法
没有怎么用过,知道就行,了解就可以
<?phpgoto wan;echo '天王盖地虎';wan:echo '小鸡炖蘑菇';?>
通过上例,我们发现直接显示输出了:小鸡炖蘑菇。
<?phpfor($i=0; $i<100; $i++) {echo '第'. $i .'周往返北京大连<br />';if($i == 17){goto end;}}end:echo '集团公司要求停止此项';?>
注:
goto 操作符可以用来跳转到程序中的另一位置。
该目标位置可以用目标名称加上冒号来标记,而跳转指令是 goto 之后接上目标位置的标记。
PHP 中的 goto 有一定限制,目标位置只能位于同一个文件和作用域,也就是说无法跳出一个函数或类方法,也无法跳入到另一个函数。也无法跳入到任何循环或者 switch 结构中。可以跳出循环或者 switch,通常的用法是用 goto 代替多层的 break。
# declare 语法
涉及到了函数相关的知识,若你有一定的基础,可以继续下面的学习。

前端PHP入门-007-流程控制的更多相关文章
- Python3.7.4入门-2流程控制工具
2 流程控制工具 记得在语句后加冒号 2.1 while # Fibonacci series: # the sum of two elements defines the next a, b = 0 ...
- python语法入门之流程控制
python语法入门之流程控制 流程控制是指控制流程,具体指控制程序执行的流程. 流程控制分为三种: 1.顺序结构 程序从上而下的正常执行(正常执行的代码就是顺序结构) 2.分支结构 赋予程序人的思维 ...
- PHP入门之流程控制
前言 上一篇文章对PHP的一些类型和运算符进行了简单的讲解.PHP入门之类型与运算符 这篇简单讲解一下流程控制.结尾有实例,实例内容是用switch分支和for循环分别做一个计算器和金字塔. 分支控制 ...
- Python 3 快速入门 2 —— 流程控制与函数
本文假设你已经有一门面向对象编程语言基础,如Java等,且希望快速了解并使用Python语言.本文对重点语法和数据结构以及用法进行详细说明,同时对一些难以理解的点进行了图解,以便大家快速入门.一些较偏 ...
- 04-Python入门学习-流程控制
一.流程控制if 语法1: if 条件: code1 code2 code3 .... age=180 height=163 weight=75 sex='female' is_beautif ...
- 04 Python入门学习-流程控制(if else elif while for)
一:流程控制if 语法一: if 条件: code1 code2 code3 ... age = 20 height = 170 weight = 60 sex = 'female' is_beaut ...
- [Web 前端] 023 js 的流程控制、循环和元素的获取、操作
1. Javascript 流程控制 用于"基于不同条件执行不同的动作"的场合 1.1 if 语句 三种形式 // 第一种 if... // 第二种 if... else ... ...
- 【原】Java学习笔记007 - 流程控制
package cn.temptation; public class Sample01 { public static void main(String[] args) { // for循环 // ...
- python入门之流程控制
if else 格式: if 条件 command1 command2elif 条件: command3 command4 else: command3 command4 注意条件后和else后 ...
随机推荐
- 严重: Failed to destroy end point associated with ProtocolHandler ["http-nio-8080"] java.lang.NullPointer
刚接触servlet类,按照课本的方法使用eclipse新建了一个servlet类. 新建完成后,在web.xml里面进行注册 这时候就会报错了. 五月 07, 2016 11:23:28 上午 or ...
- lintcode-491-回文数
491-回文数 判断一个正整数是不是回文数. 回文数的定义是,将这个数反转之后,得到的数仍然是同一个数. 注意事项 给的数一定保证是32位正整数,但是反转之后的数就未必了. 样例 11, 121, 1 ...
- [hook.js]通用Javascript函数钩子及其他
2013.02.16<:article id=post_content> 最近看Dom Xss检测相关的Paper,涉及到Hook Javascript函数,网上翻了一下,貌似没有什么通用 ...
- Q3 大型科技公司季报
1. alphabet Alphabet(谷歌母公司)今天发布了截至9月30日的2018财年第三季度财报.报告显示,Alphabet第三季度总营收为337.40亿美元,比上年同期的277.72亿美元增 ...
- exce族函数详解
exec函数族 函数族说明 fork() 函数用于创建一个新的子进程,该子进程几乎复制了父进程的全部内容,但是,这个新创建的子进程如何执行呢?exec 函数族就提供了一个在进程中启动另一个程序执行的方 ...
- urllib2 request 模拟伪装浏览器
直接上代码吧 # -*- coding:utf-8 -*- import urllib2 import random url = "http://www.baidu.com/" # ...
- 公告:请访问我的个人博客新站点——www.huangshujia.me
我的个人博客现在在(http://www.huangshujia.me/)cnblog这里不会做任何更新了.或者关注我的个人公众号:碱基矿工
- C++解析(21):四个操作符
0.目录 1.逻辑操作符的陷阱 2.逗号操作符的分析 3.前置操作符和后置操作符 4.小结 1.逻辑操作符的陷阱 逻辑运算符的原生语义: 操作数只有两种值(true和false) 逻辑表达式不用完全计 ...
- 考研路茫茫――单词情结 HDU - 2243(ac自动机 + 矩阵快速幂)
考研路茫茫——单词情结 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- Spring Boot系列教程十:Spring boot集成Sentinel Redis
前言 上一篇文章介绍了spring boot集成单点的redis,然而实际生产环境使用单点的redis风险很高,一旦宕机整个服务将无法使用,这篇文章介绍如何使用基于sentinel的redis高可用方 ...