今日目标:

(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-循环结构-数组(难)的更多相关文章

  1. 浅析PHP中for与foreach两个循环结构遍历数组的区别

    遍历一个数组是编程中最常见不过的了,这里跟大家讨论下for和foreach两种方法.用这两种方法执行遍历的场景太多太多了,这里我们只针对以下两个数组作为例子来讨论.所谓管中窥豹,多少能理清一点两者的区 ...

  2. 你好,C++(23) 4.4.2 工资程序成长记:用数组处理批量数据,用循环结构执行重复动作

    4.4  从语句到程序 了解了各种表达式和语句之后,就相当于掌握了写作文要用到的词语和句子,但是,仅有词语和句子是无法构成一篇有意义的文章的.要完成一篇文章,先需要确定这篇文章的结构,是先分述再总述, ...

  3. 深度理解PHP中for与foreach两个循环结构遍历数组的区别

    遍历一个数组是编程中最常见不过的了,这里讨论下for和foreach两种方法: 首先,我们先准备两个用于遍历的数组: $arr1=array(1=>'a', 3=>22, 5=>'b ...

  4. java 基础 04 循环结构 一维数组

    内容: (1)循环结构 (2)一维数组 1.循环结构 1.1for循环 (1)语法格式 for(初始化表达式1;条件表达式2;修改初始化表达式3){ 循环体; } (2)执行流程 执行初始化表达式 = ...

  5. javascript_basic_03之函数、循环、数组

    1.函数:函数(Function),方法(Method),过程(Procedure): 2.默认为假的情况: ①if(0){}:②if(0.0){}:③if(null){}:④if("&qu ...

  6. 【C语言学习】-03 循环结构

    本文目录 循环结构的特点 while循环 do...while循环 for循环 回到顶部 一.循环结构的特点 程序的三种结构: 顺序结构:顺序执行语句 分支结构:通过进行一个判断在两个可选的语句序列之 ...

  7. MATLAB的循环结构

    循环结构有两种基本形式:while 循环和for 循环.两者之间的最大不同在于代码的重复是如何控制的.在while 循环中,代码的重复的次数是不能确定的,只要满足用户定义的条件,重复就进行下去.相对地 ...

  8. C#学习笔记11:C#中的顺序结构、分支结构、循环结构

    顺序结构: 代码从Main()函数开始运行,从上到下,一行一行的执行,不漏掉代码. Int a=6; int b=5; int c=a+b; Console.Write(c); 分支结构: 代码有可能 ...

  9. Javascript开发技巧(JS中的变量、运算符、分支结构、循环结构)

    一.Js简介和入门 继续跟进JS开发的相关教程. <!-- [使用JS的三种方式] 1.HTML标签中内嵌JS(不提倡使用): 示例:<button onclick="javas ...

随机推荐

  1. 常用http/https以及socks5代理总结

    代理 格式 # 设置http代理 export http_proxy= # 设置https代理 export HTTPS_PROXY= # 设置ftp代理 export FTP_PROXY= # 同时 ...

  2. centos7 源码安装redis

    安装3.x [root@node1 ~]# yum install wget gcc-c++ make [root@node1 ~]# wget http://download.redis.io/re ...

  3. PAT 乙级1093 字符串A+B (20 分)

    1093 字符串A+B (20 分) 给定两个字符串 A 和 B,本题要求你输出 A+B,即两个字符串的并集.要求先输出 A,再输出 B,但重复的字符必须被剔除. 输入格式: 输入在两行中分别给出 A ...

  4. Python微信

    """ Description: 需要提供以下三个信息,在申请到的微信企业号当中可以找到 agentid corpid corpsecret Author:Nod Dat ...

  5. python数据格式化之pprint

    python数据格式化之pprint 2017年06月17日 13:56:33 阅读数:2291 简介 pprint模块 提供了打印出任何Python数据结构类和方法. 模块方法: 1.class p ...

  6. Let'sencrypt.sh 抛出异常: Response: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:726)>

    起因 今天网站的SSL证书过期了,打算重新申请,运行 Let'sencrypt.sh 的时候抛出了这么个异常. 一番搜索,发现居然找不到直接的答案.没有直接的答案就只能通过间接的答案来解决了. 希望我 ...

  7. css3兼容性检测工具

    1.   Modernizr  会在Modernizr 会在页面加载后立即检测特性:然后创建一个包含检测结果的 JavaScript 对象,同时在 html 元素加入方便你调整 CSS 的 class ...

  8. oracle数据链接

    using System; using System.Collections.Generic; using System.Data; using System.Data.OracleClient; u ...

  9. Digital Twin的8种解读!

    国际8大主流厂商对digital twin的理解,很有必要来一次汇总! 据IDC预测,2017年世界上将有40%的大型生产商都会应用虚拟仿真技术来为他们的生产过程进行建模,Digital Twin可以 ...

  10. 数据库设计,表与表的关系,多对多。Many-To-Many(3)

    多对多:两个数据表里的每条记录都可以和另一个表里的任意数量的记录(或者没记录)相关. 多对多关系是关系数据库中两个表之间的一种关系, 该关系中第一个表中的一个行可以与第二个表中的一个或多个行相关.第二 ...