当前位置: 首页 > article >正文

从头学PHP之流程控制

上一期本来要讲运算符和流程控制的,但是运算符过于多了,就分开讲了,好,话不多说,开始本期的学习–PHP之流程控制
在这里插入图片描述

一、条件控制语句

条件空语句又分为

  1. if语句
  2. if…else语句
  3. if…elseif…else语句
  4. 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:
	        // 如果没有匹配的值
	}
?>
参数说明
  1. expression是要被比较的表达式
  2. case value 是分支可能的值,如果expression等于某个case的value值,就执行相应是的代码块
  3. break用于终止switch语句,防止继续执行下一个case(分支)
  4. default是可选的,用户设置当没有匹配的case value(分支的值)时执行额代码块

demo:

<?php
$favcolor="静香";
switch ($favcolor)
{
case "大熊":
    echo "拥有哆啦A梦!";
    break;
case "静香":
    echo "静香很烧!";
    break;
case "胖虎":
    echo "静香是胖虎的!";
    break;
default:
    echo "不是哆啦A梦中的人物";
}
?>

结果:
静香很烧

二、循环控制语句

在编写程序时,我们通常需要一次一次的重复运行某段代码

循环的两种状态

1. 死循环:死循环是没有条件限制或者条件一直成立
2. 条件循环:如果我们需要代码运行到符合某个条件时终止运行。

循环控制语句分别为:

  1. while循环
  2. do…while循环
  3. for循环
  4. 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 (初始值; 条件; 增量)
{
    要执行的代码;
}
参数
  1. 初始值:主要初始化一个变量值,用于设置一个计数器(但可以是任意在循环的开始被执行一次的代码)。
  2. 条件:循环执行的限制条件,如果条件为TRUE则循环继续如果为FALSE则结束循环。
  3. 增量:主要用于递增计数器(但是可以是任何在循环的结束被执行的代码)
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)是一种简单的排序算法,其基本思想是通过多次遍历待排序的数列,比较相邻元素的值,并在必要时交换它们的位置,从而将最大的元素逐步“冒泡”到数列的末尾。这个过程会重复进行,直到整个数列有序为止。

预告

下期讲数组


http://www.kler.cn/a/371085.html

相关文章:

  • 在 Webpack 中使用 预加载(Preloading) 技术可以通过动态导入(import())以及指定预加载的方式来进行优化
  • 【Unity3D】【已解决】TextMeshPro无法显示中文的解决方法
  • uni-app编写微信小程序使用uni-popup搭配uni-popup-dialog组件在ios自动弹出键盘。
  • PHP 字符串
  • 浅谈云计算03 | 云计算的技术支撑(云使能技术)
  • Windows service运行Django项目
  • 基于Mysql、JavaScript、PHP、ajax开发的MBTI性格测试网站(前端+后端)
  • 【React】React18核心源码解读
  • Spring Boot植物健康系统:绿色科技的突破
  • 基于SSM+小程序的购物管理系统1
  • 整合Mybatis-plus及最佳实践
  • Android中SurfaceView与GLSurfaceView 的关系
  • 3GPP协议解读_NTN系列(一)_38.811_非地面网络(NTN)的背景、应用场景和信道建模
  • 京东双十一高并发场景下的分布式锁性能优化
  • PHP显示数据库中图片BLOB格式
  • lvgl
  • 今日总结10.28
  • Android WebView加载不到cookie
  • Trains-03练习-结构
  • Android -- 调用系统相册之图片裁剪保存
  • java-web-day5
  • 科东软件荣获2024年广州科技创新创业大赛轨道交通行业赛“创新突围奖”
  • 有符号除法 简单的带小数计算及权重约束_2024年10月7日
  • Java Lock CountDownLatch 总结
  • 机器人转人工时,开启实时质检(mod_cti基于FreeSWITCH)
  • 计算机网络IP地址分类,子网掩码,子网划分复习资料