php顺序结构例题,PHP | 顺序结构、条件结构、循环结构 知识梳理与运用实例

1.顺序结构

demo:

$shoesPrice = 49; //鞋子单价

$shoesNum = 1; //鞋子数量

$shoesMoney = $shoesPrice * $shoesNum;

$shirtPrice = 99; //衬衣单价

$shirtNum = 2; //衬衣数量

$shirtMoney = $shirtPrice * $shirtNum;

$orderMoney = $shoesMoney + $shirtMoney;

echo $orderMoney ;

?>

输出

···

247

···

2.条件结构

2.1 if…else…

语法:

if(条件){

//分配服务器干的任务A

}else{

//分配服务器干的任务B

}

?>

demo:

一些酒店为了促销,吸引顾客,可以给当天生日的人八折优惠:

date_default_timezone_set('Asia/ShangHai');

$today = date('m-d',time());//获取当天日期

$birthday = "02-14";//生日

$money = 238;//消费金额

$discount = 0.8;//八折优惠

if($today == $birthday){

$money = $money * $discount;

}else{

$money = $money * 1;

}

echo $money;

?>

2.2 if…else if…

语法:

if(条件一){

//分配服务器干的任务A

}else if(条件二){

//分配服务器干的任务B

}

?>

demo:

在妇女节那个月,需要给女员工发300元奖金:

$totalMoney = 0;//总工资

$basicMoney = 2000;//基本工资

$sex = "女";

if($sex == "男"){

$totalMoney = $basicMoney + 0;// 男的没奖金

}else if($sex == "女"){

$totalMoney = $basicMoney + 300;// 女的有奖金300元

}

echo $totalMoney;

?>

2.3 if…else if…else…

语法:

if(条件一){

//分配服务器干的任务A

}else if(条件二){

//分配服务器干的任务B

}else{

//分配服务器干的任务C

}

?>

demo:

如果我们需要提供上课的提示信息,假设如果为周一则上午有课,如果为周三则下午有课,其它时间没课。

date_default_timezone_set('asia/shanghai');

$week = date("w");//获取当天星期几

$info = "";//提示信息

if($week == 1){

$info = "上午有课";

}else if($week == 3){

$info = "下午有课";

}else{

$info = "今天没课";

}

echo $info; //输出提示信息

?>

2.4 switch…case…

语法:

switch (条件)

{

case 条件值一:

//任务一

break;

case 条件值二:

//任务二

break;

default:

//默认任务

}

?>

demo:

一个玩具中奖程序:

$num = rand(1,50);//获取1至50的随机数

$info = "";//提示信息

switch($num){

case 1:

$info = "恭喜你!中了一等奖!";

break;

case 2:

$info = "恭喜你!中了二等奖!";

break;

case 3:

$info = "恭喜你!中了三等奖!";

break;

default:

$info = "很遗憾!你没有中奖!";

}

echo $info; //输出是否中奖

?>

3. 循环结构

3.1 while循环语句

语法:

while(条件){

//执行任务

}

?>

demo:

虚拟宠物:当小宠物饿了,就需要喂食。假设初始化小宠物饿的时候,体力数字为12,当达到100的时候就饱了,我们使用随机数,模拟喂食小宠物小面包恢复的体力值;

$sum = 12;//小宠物当前的饥饿程度

echo "我饿啦:-(";

echo "
";

while($sum<100)

{//小宠物的饥饿程度到100,表示小宠物吃饱啦,不用继续喂了,没吃饱继续喂食

$num = rand(1,20);//随机数,模拟喂食小宠物的小面包

$sum = $sum + $num; //小宠物吃小面包

echo "我还没吃饱呢!";

echo "
";

}

echo "终于吃饱啦^_^";

?>

运行效果:

我饿啦:-(

我还没吃饱呢!

我还没吃饱呢!

我还没吃饱呢!

我还没吃饱呢!

我还没吃饱呢!

我还没吃饱呢!

我还没吃饱呢!

我还没吃饱呢!

我还没吃饱呢!

终于吃饱啦^_^

3.2 do while循环语句

语法:

do{

//执行任务

}while(条件)

?>

demo:

胖虎在跑步锻炼身体,需要跑十圈,要求每跑一圈打印一下:

$i = 1 ; //从第1圈开始跑

do{ //跑10圈

echo "在跑第".$i."圈。";

echo "
";

$i++;

}while($i<=10);

?>

运行结果:

在跑第1圈。

在跑第2圈。

在跑第3圈。

在跑第4圈。

在跑第5圈。

在跑第6圈。

在跑第7圈。

在跑第8圈。

在跑第9圈。

在跑第10圈。

3.3 while与do…while语句的区别

while先判断条件是否成立,后执行循环,

do...while先执行一次任务,再判断是否继续执行循环,也就是说do...while至少会执行一次任务。

当条件为FALSE时,while中的任务会一次也不执行,do...while中的任务会执行1次。

demo:

//A例子

$num = 2;

$sum = 10;

while($num>3){

$sum = $sum + 10;

}

echo "A例子的结果:".$sum."
";

//B例子

$num = 2;

$sum = 10;

do{

$sum = $sum + 10;

}while($num>3);

echo "B例子的结果:".$sum."
";

?>

运行结果:

A例子的结果:10

B例子的结果:20

3.4 do…while语句的运用优势举例

假设有一种棋类游戏,首先掷骰子,若不为6,前进骰子的点数的步长;若为6,前进骰子的点数的步长,并可以再掷一次。写一段脚本,完成一次抛骰子的运算:

//while例子

$sum = 0;

$num = rand(1,6); //获取1至6的随机数,模拟掷骰子

$sum = $sum + $num;//前进步长

while($num==6){

$num = rand(1,6);//获取1至6的随机数,模拟掷骰子

$sum = $sum + $num;//前进步长

};

echo "while例子执行完毕,前进:".$sum ."
";

//do...while例子

$sum = 0;

do{

$num = rand(1,6);//获取1至6的随机数,模拟掷骰子

$sum = $sum + $num;//前进步长

}while($num==6);

echo "do...while例子执行完毕,前进:".$sum ."
";

?>

从代码的结构和可读性角度来看,在这里使用do...while更合适。

3.5 for循环语句

语法:

for(初始化;循环条件;递增项){

//执行任务

}

?>

demo:

累积求和1-100:

//for语句写法

for($i = 1,$sum = 0;$i<=100;$i++){

$sum = $sum + $i; // 累加求和

}

echo "for语句的运行结果:".$sum."
" ;

//while语句写法

$i = 1 ; // 从1开始累加

$sum = 0; //初始化和为0

while($i<=100){ //判断是否小于100

$sum = $sum + $i; // 累加求和

$i++; //递增1

}

echo "while语句的运行结果:".$sum."
" ;

?>

3.6 foreach循环语句

语法:

在PHP中foreach循环语句,常用于遍历数组,

一般有两种使用方式:不取下标、取下标。

(1)只取值,不取下标

foreach (数组 as 值){

//执行的任务

}

?>

(2)同时取下标和值

foreach (数组 as 下标 => 值){

//执行的任务

}

?>

这里跟Java语法有区别:

foreach (值 : 数组){

//执行的任务

}

demo:

//foreach循环

for(String str : arr){   //这里的str就是为了获取每次循环的arr中的值

System.out.println(str);     //就相当于 String str=arr[i]

}

php-demo:

$students = array(

'2010'=>'令狐冲',

'2011'=>'林平之',

'2012'=>'曲洋',

'2013'=>'任盈盈',

'2014'=>'向问天',

'2015'=>'任我行',

'2016'=>'冲虚',

'2017'=>'方正',

'2018'=>'岳不群',

'2019'=>'宁中则',

);//10个学生的学号和姓名,用数组存储

//使用循环结构遍历数组,获取学号和姓名

echo "只取值,不取下标的打印:";

echo "
"."
";

foreach($students as $v)

{

echo $v;//输出(打印)姓名

echo "
";

}

echo "
"."--------------"."
"."
";

echo "同时取下标和值的打印:";

echo "
"."
";

foreach($students as $key => $value)

{

echo '这是键为 '.$key.' 对应的值:'.$value;

echo "
";

}

?>

运行结果:

只取值,不取下标的打印:

令狐冲

林平之

曲洋

任盈盈

向问天

任我行

冲虚

方正

岳不群

宁中则

--------------

同时取下标和值的打印:

这是键为 2010 对应的值:令狐冲

这是键为 2011 对应的值:林平之

这是键为 2012 对应的值:曲洋

这是键为 2013 对应的值:任盈盈

这是键为 2014 对应的值:向问天

这是键为 2015 对应的值:任我行

这是键为 2016 对应的值:冲虚

这是键为 2017 对应的值:方正

这是键为 2018 对应的值:岳不群

这是键为 2019 对应的值:宁中则

作者:凌川江雪

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值