PHP-循环结构-数组
今日目标:
(1)循环结构 —— do..while.. —— 掌握
(2)循环结构 —— for —— 重点
(3)数组 —— 重点
1.PHP中的循环结构 —— do..while...
do: 做,执行 while:当...的时候
do...while...: 执行XXXX操作当YYYY的时候。
|
while |
do...while |
|
$i = 0; while( $i<5 ){ echo '※'; $i++; } |
$i = 0; do{ echo '※'; $i++; }while( $i<5 ); |
|
先判定再执行 |
先执行再判定 |
|
$i = 10; while( $i<5 ){ echo '※'; $i++; } |
$i = 10; do{ echo '※'; $i++; }while( $i<5 ); |
|
while的主体可能执行0~N次 |
do...while的主体执行1~N次 |
|
结论:while和do...while一般情况下执行效果完全一样;仅在第一次都不能执行时有细微的差别——while至少执行一次 |
|
练习:使用do..while输出10个Hello
练习:使用do..while输出1/2/3/...100
练习:使用do..while输出2/4/6/...98
练习:使用do..while输出90/80/70/...10
练习:使用do..while循环计算出1+2+3+4+...100的累加和,输出该整数和
练习:使用do..while循环计算出1*2*3*4*...10的累乘积,输出该乘积
.......
2.PHP中的循环结构——for循环 —— 最重点
for: “为了”,是最常用的循环结构
for( 语句1; 语句2; 语句3 ){
#循环主体
}
(1)语句1在整个循环开始之前执行,且仅执行一次——一般是循环变量的初始化语句
(2)语句2在每次主体执行之前执行,是一个判定语句:true时执行主体;false时退出循环——循环条件语句
(3)语句3在每次主体执行之后执行——循环变量的改变
(4)语句1和3中可以是用逗号分隔的多个语句
|
$i = 0; while( $i<5 ){ echo '※'; $i++; } |
for($i = 0; $i<5; $i++){ echo '※'; } |
|
结论:while和for的功能完全一样!只是for看起来更加紧凑。 |
|
练习1):输出10个Hello
练习2):输出2000/2001/2002/....2999
练习3):输出95/90/85/....5
--------------------------------------------
练习4):使用for计算出1+2+3+4+...100的累加和,输出该整数和
练习5):使用for计算出1*2*3*4*...10的累乘积,输出该乘积
练习6):使用for循环计算出90/5 + 80/10 + 70/15 + 60/20 + 50/25的和,输出该和
--------------------------------------------
练习7):输出1个※
练习8):输出10个※,最后再加1个<br>
提示:把练习7循环执行10次
练习9):输出5行10列个※
提示:把练习8循环执行5次 —— 循环的嵌套
练习10):输出:
※
※※
※※※
※※※※
※※※※※
---------------------------------------------------------
难题!练习11)输出本世纪(2000~2100)所有的闰年
2000 是吗? 是就输出;
2001 是吗? 是就输出;
...
2100 是吗? 是就输出;
提示:在for循环中嵌入if判断
难题!!练习12)输出所有的“三位水仙花数”—— 一个三位数字,百位的立方 + 十位的立方 + 个位的立方 === 该数本身 ,如
1*1*1 + 5*5*5 + 3*3*3 === 153
思路:只能逐个去试:
100是吗?是就输出;
101是吗?是就输出;
...
999是吗?是就输出;
$i是水仙花数吗?先取出个位、十位、百位上的数字,再判定是否满足水仙花数条件,满足的就输出
难题!练习12)输出所有的“四位水仙花数”
难题!!!!!练习13)输出100以内所有的质数
for循环的变种:
|
for($i = 0; $i<5; $i++){ echo '※'; } |
|
$i = 0; for( ; $i<5; $i++){ #语句1可以为空白,分号不能少 echo '※'; } |
|
$i = 0; for( ; $i<5; ){ #语句3可以为空白 echo '※'; $i++ ; } |
|
$i = 0; for( ; ; ){ #语句2可以为空白,等同于 for( ; true; ){ } echo '※'; $i++ ; } |
3.与循环相关的两个PHP关键字
continue:继续
如果在循环中出现continue,表示跳过此次循环后续的代码,继续执行下一次循环。
示例:输出1/2/3/4/6/7/8/9/11/12/13/14/16...99
for($i=1; $i<100; $i++){
if($i%5===0){
continue;
}
echo $i;
}
练习:输出1+2+5+7+10+11+13+14+17.......98
提示:计算累加和,跳过所有能被3或4整除的数
break:打断
break可用于switch..case..,表示打断不再执行switch中剩余的case代码;还能用于循环,表示打断整个循环,不再继续执行,调到循环外面。
示例:
for($i=1; $i<100; $i++){
if($i%5===0){
break;
}
echo $i;
} #只能输出: 1/2/3/4
练习:计算1*2*3*4*...*100的累乘积,要求如果中间$chengJi超过21747483647,立即终止执行,输出此时的乘积值,以及$i的值
难题!!! 练习:输出本世纪所有的闰年,输出够10个即不再输出。
|
while( true ){ #让用户猜系统产生的随机数 if( 猜中 ){ break; } } |
4.PHP中的数据类型 —— 数组类型
PHP中如何保存1个员工的年龄: $age = 20;
PHP中如何保存100个员工的年龄:
$age1 = 20;
$age2 = 22;
$age3 = 31;
$age4 = 19;
.....
保存批量的数据不会创建批量的变量!而使用数组变量!
array:数组,数据的组合/集合
创建一个数组:
$数组变量名 = [ ]; #空数组
$数组变量名 = [ 值, 值, 值, 值 ];
|
原生值类型:一个变量只能存一个数据 复合类型中的数组类型:一个变量可以存储任意多个数据 |
查看数组中内容:
echo $数组变量名; #错误!!
var_dump($数组变量名); #正确!!
获取数组中数据的个数(数组长度):
echo count($数组名);
操作数组中的某个数据:
echo $数组名[ 数据的下标 ] ; #输出某个数据
$数组名[ 数据的下标 ] = 值; #修改某个数据
练习:创建一个数组,保存5个员工的工资
练习:创建一个数组,保存4个用户的用户名
练习:创建一个数组,保存6个用户当前是否在线
结论:数组中可以存储任意类型的数据。
课后练习:
(1)创建一个数组,保存8个学生的考试成绩,使用for循环输出所有的数据元素。
(2)使用for循环为上述数组中的每个考试成绩+5分。
(3)再使用for循环输出修改后的所有数组元素。
------------------------------------------------------------
难题!输出所有的“四位水仙花数”。
难题!!!!输出100以内所有的质数。
有余力的学员继续完成“程序员必做的50道题”以锻炼程序思维。
PHP-循环结构-数组的更多相关文章
- 浅析PHP中for与foreach两个循环结构遍历数组的区别
遍历一个数组是编程中最常见不过的了,这里跟大家讨论下for和foreach两种方法.用这两种方法执行遍历的场景太多太多了,这里我们只针对以下两个数组作为例子来讨论.所谓管中窥豹,多少能理清一点两者的区 ...
- 你好,C++(23) 4.4.2 工资程序成长记:用数组处理批量数据,用循环结构执行重复动作
4.4 从语句到程序 了解了各种表达式和语句之后,就相当于掌握了写作文要用到的词语和句子,但是,仅有词语和句子是无法构成一篇有意义的文章的.要完成一篇文章,先需要确定这篇文章的结构,是先分述再总述, ...
- 深度理解PHP中for与foreach两个循环结构遍历数组的区别
遍历一个数组是编程中最常见不过的了,这里讨论下for和foreach两种方法: 首先,我们先准备两个用于遍历的数组: $arr1=array(1=>'a', 3=>22, 5=>'b ...
- java 基础 04 循环结构 一维数组
内容: (1)循环结构 (2)一维数组 1.循环结构 1.1for循环 (1)语法格式 for(初始化表达式1;条件表达式2;修改初始化表达式3){ 循环体; } (2)执行流程 执行初始化表达式 = ...
- javascript_basic_03之函数、循环、数组
1.函数:函数(Function),方法(Method),过程(Procedure): 2.默认为假的情况: ①if(0){}:②if(0.0){}:③if(null){}:④if("&qu ...
- 【C语言学习】-03 循环结构
本文目录 循环结构的特点 while循环 do...while循环 for循环 回到顶部 一.循环结构的特点 程序的三种结构: 顺序结构:顺序执行语句 分支结构:通过进行一个判断在两个可选的语句序列之 ...
- MATLAB的循环结构
循环结构有两种基本形式:while 循环和for 循环.两者之间的最大不同在于代码的重复是如何控制的.在while 循环中,代码的重复的次数是不能确定的,只要满足用户定义的条件,重复就进行下去.相对地 ...
- C#学习笔记11:C#中的顺序结构、分支结构、循环结构
顺序结构: 代码从Main()函数开始运行,从上到下,一行一行的执行,不漏掉代码. Int a=6; int b=5; int c=a+b; Console.Write(c); 分支结构: 代码有可能 ...
- Javascript开发技巧(JS中的变量、运算符、分支结构、循环结构)
一.Js简介和入门 继续跟进JS开发的相关教程. <!-- [使用JS的三种方式] 1.HTML标签中内嵌JS(不提倡使用): 示例:<button onclick="javas ...
- Java使用条件语句和循环结构确定控制流
与任何程序设计语言一样,Java使用条件语句和循环结构确定控制流.本文将简单讲解条件.循环和switch. 一.块作用域 块(block),即复合语句.是指由一对大括号括起来的若干条简单的Java语句 ...
随机推荐
- python3学习笔记五(列表2)
参考http://www.runoob.com/python3/python3-list.html 嵌套列表 a = ['a','b','c']b = [1,2,3]x = [a, b]print(x ...
- Python装饰器的调用过程
在Python学习的过程中,装饰器是比较难理解的一个应用.本人也在学习期间也遇到很多坑,现将装饰器的基本调用过程总结一下. 首先,装饰器用到了“闭包”,而“闭包”是学习装饰器的基础,所以在讲装饰器之前 ...
- Python的hasattr(),getattr(),setattr()
今天读到源码时遇到了setattr()和getattr()两方法,给忘了,重新回顾一下吧! 1. hasattr(object, name) 判断object里是否有name属性,有就返回True,没 ...
- Vue Checkbox全选和选中的方法
<div class="search-content"> <Checkbox :value="checkAll" @click.prevent ...
- python-web自动化环境安装
web自动化环境安装 1.安装selenium 命令行使用以下命令安装selenium:pip install -U selenium 2.安装chrome浏览器 3.chromedriver的下载 ...
- how find out what is causing Visual Studio to think each project is out of date
You can find out what is causing Visual Studio to think each project is out of date, and then addres ...
- android 开发 我的高德地图代码例子
下载高德地图依赖库和相关注册方式,请查看高德开发者网站:http://lbs.amap.com/api/android-sdk/summary 点击打开链接 高德地图坐标拾取器:http://lbs ...
- BBS(第二天) Django之Admin 自动化管理数据页面 与创建一个用户注册的验证码
1.admin的概念 # Admin是Django自带的一个功能强大的自动化数据管理界面 # 被授权的用户可以直接在Admin中操作数据库 # Django提供了许多针对Admin的定制功能 2. 配 ...
- 用python优雅打开文件及上下文管理协议
有次面试被问到如何优雅地打开一个文件? 那就是用with语句,调用过后可以自动关闭. 但是为什么使用with语句就可以自动关闭呢,原因就是上下文管理协议. 上下文管理协议:包含方法 __e ...
- ELK6.0部署:Elasticsearch+Logstash+Kibana搭建分布式日志平台
一.前言 1.ELK简介 ELK是Elasticsearch+Logstash+Kibana的简称 ElasticSearch是一个基于Lucene的分布式全文搜索引擎,提供 RESTful API进 ...