从头学PHP之流程控制
上一期本来要讲运算符和流程控制的,但是运算符过于多了,就分开讲了,好,话不多说,开始本期的学习–PHP之流程控制
一、条件控制语句
条件空语句又分为
- if语句
- if…else语句
- if…elseif…else语句
- switch语句
1、if
在条件成立时执行控制语句内的代码
语法:
if(条件){
条件成立时执行的代码
}
demo:
<?php
$user="大熊";
if ($user=="大熊"){
echo "大熊拥有哆啦A梦";
}
?>
结果:
大熊拥有哆啦A梦
2、if…else
在条件成立时执行一块代码条件不成立时执行另一块代码
语法:
if (条件){
条件成立时执行的代码;
}else{
条件不成立时执行的代码;
}
demo
<?php
$user="胖虎";
if ($user=="大熊"){
echo "大熊拥有哆啦A梦";
}else{
echo "不是大熊没有哆啦A梦"
}
?>
结果:
不是大熊没有哆啦A梦
3、if…elseif…else
在若干条件之一成立时执行成立时的代码块
语法:
if (条件){
if 条件成立时执行的代码;
}elseif (条件){
elseif 条件成立时执行的代码;
}else{
条件不成立时执行的代码;
}
demo:
<?php
$user="静香";
if ($user=="大熊"){
echo "大熊拥有哆啦A梦";
}elseif($user=="静香"){
echo "静香很烧"
}else{
echo "没有匹配的结果"
}
?>
结果:
静香很烧
4、switch
switch语句适用于根据多个不同条件执行不同动作,如果您希望有选择的执行某段代码可以使用switch语句
工作原理
首先对一个简单的表达式 n(通常是变量)进行一次计算。将表达式的值与结构中每个 case 的值进行比较。如果存在匹配,则执行与 case 关联的代码。代码执行后,使用 break 来阻止代码跳入下一个 case 中继续执行。default 语句用于不存在匹配(即没有 case 为真)时执行。
语法:
<?php
switch (expression) {
case value1:
// 代码块1
break;
case value2:
// 代码块2
break;
// 更多的 case 语句
default:
// 如果没有匹配的值
}
?>
参数说明
- expression是要被比较的表达式
- case value 是分支可能的值,如果expression等于某个case的value值,就执行相应是的代码块
- break用于终止switch语句,防止继续执行下一个case(分支)
- default是可选的,用户设置当没有匹配的case value(分支的值)时执行额代码块
demo:
<?php
$favcolor="静香";
switch ($favcolor)
{
case "大熊":
echo "拥有哆啦A梦!";
break;
case "静香":
echo "静香很烧!";
break;
case "胖虎":
echo "静香是胖虎的!";
break;
default:
echo "不是哆啦A梦中的人物";
}
?>
结果:
静香很烧
二、循环控制语句
在编写程序时,我们通常需要一次一次的重复运行某段代码
循环的两种状态
1. 死循环:死循环是没有条件限制或者条件一直成立
2. 条件循环:如果我们需要代码运行到符合某个条件时终止运行。
循环控制语句分别为:
- while循环
- do…while循环
- for循环
- foreach循环
1、while循环
while 循环将重复执行代码块,直到指定的条件不成立。
语法:
while (条件)
{
要执行的代码;
}
demo:
下面的实例首先设置变量 i 的值为 1 ($i=1;)。
然后,只要 i 小于或者等于 5,while 循环将继续运行。循环每运行一次,i 就会递增 1:
<html>
<body>
<?php
$i=1;
while($i<=5)
{
echo "The number is " . $i . "<br>";
$i++;
}
?>
</body>
</html>
结果:
The number is 1
The number is 2
The number is 3
The number is 4
The number is 5
2、do…while
do…while 语句会至少执行一次代码,然后检查条件,只要条件成立,就会重复进行循环。
语法:
do
{
要执行的代码;
}
while (条件);
demo:
下面的实例首先设置变量 i 的值为 1 ($i=1;)。
然后,开始 do…while 循环。循环将变量 i 的值递增 1,然后输出。先检查条件(i 小于或者等于 5),只要 i 小于或者等于 5,循环将继续运行:
<html>
<body>
<?php
$i=1;
do
{
$i++;
echo "The number is " . $i . "<br>";
}
while ($i<=5);
?>
</body>
</html>
结果:
The number is 2
The number is 3
The number is 4
The number is 5
The number is 6
注意: while与do…while的区别
1、while 先判断段 能不能吃(条件),能吃就吃(循环继续),不能吃就不吃(循环终止)
2、do while至少循环一次,属于后测试循环语句,比如一个人吃东西,不管能不能吃先吃一口,能吃就继续吃(循环继续),不能吃就不吃(停止循环) 能不能吃(条件)
3、for
for 循环用于您预先知道脚本需要运行的次数的情况。
语法:
for (初始值; 条件; 增量)
{
要执行的代码;
}
参数
- 初始值:主要初始化一个变量值,用于设置一个计数器(但可以是任意在循环的开始被执行一次的代码)。
- 条件:循环执行的限制条件,如果条件为TRUE则循环继续如果为FALSE则结束循环。
- 增量:主要用于递增计数器(但是可以是任何在循环的结束被执行的代码)
ps:
上面的初始值和增量参数可为空,或者有多个表达式(用逗号分隔)。
demo
<?php
for ($i=1; $i<=5; $i++)
{
echo "数字为 " . $i . PHP_EOL;
}
?>
结果:
数字为 1
数字为 2
数字为 3
数字为 4
数字为 5
4、foreach
foreach适用于循环遍历数组,
语法:
每进行一次循环,当前数组元素的值就会被赋值给 $value 变量(数组指针会逐一地移动),在进行下一次循环时,您将看到数组中的下一个值。
foreach ($array as $value)
{
要执行代码;
}
or
每一次循环,当前数组元素的键与值就都会被赋值给 $key 和 $value 变量(数字指针会逐一地移动),在进行下一次循环时,你将看到数组中的下一个键与值。
foreach ($array as $key => $value)
{
要执行代码;
}
demo:
<?php
$x=array(
1=>"Google",
2=>"Runoob",
3=>"Taobao"
);
foreach ($x as $key => $value)
{
echo "key 为 " . $key . ",对应的 value 为 ". $value . PHP_EOL;
}
?>
结果
key 为 1,对应的 value 为 Google
key 为 2,对应的 value 为 Runoob
key 为 3,对应的 value 为 Taobao
作业
用for循环实现$arr = array(5,3,6,2,8,10);的冒泡排序
冒泡排序:
1、什么是冒泡排序
冒泡排序(BubbleSort)是一种简单的排序算法,其基本思想是通过多次遍历待排序的数列,比较相邻元素的值,并在必要时交换它们的位置,从而将最大的元素逐步“冒泡”到数列的末尾。这个过程会重复进行,直到整个数列有序为止。
预告
下期讲数组