第八天(php循环与数组)

来源:互联网 发布:怎样成为一个网络写手 编辑:程序博客网 时间:2024/06/05 12:43

复习:

掌握一门新语言的基本步骤

(1)背景 PHP、JSP、ASP.NET、Node.js
(2)搭建环境
(3)变量和常量
$变量名= 值;
const 常量名=值; define(‘常量名’, 值);
(4)数据类型——三大类八小种
标量类型/值类型:int、float、bool、string
复合类型:array、object
其它类型:null、resource
(5)运算符
算术:+ - * / % ++ –
比较:><>= <= == === != !==
逻辑:&& || !
赋值:= += -= *= /= %= .=
位:<<>>
字符串拼接: .
三目: 表达式1 ? 表达式2 : 表达式3
(6)逻辑结构
顺序执行
选择执行 if…else… switch…case…
循环执行

练习:数据库保存员工的政治面貌,使用一个数字,如1-党员、2-团员、3-群众、其它-未知;创建一个整型变量保存一个政治面貌,输出对应的字符串
要求:使用三种方式实现

今日目标:

(1)循环结构 —— while —— 掌握
(2)循环结构 —— do..while —— 掌握
(3)循环结构 —— for —— 重点
(4)循环结构 —— foreach —— 重点
(5)数组 —— 重点&难点

1.循环结构 —— while循环

语法: while( 循环条件){
循环主体
}
含义:当“循环条件”为true时,就执行一遍“循环主体”;再次判定….
练习1:使用while循环从0输出到9
练习2:使用while循环在一行中输出50个※
练习3:使用while循环输出10行50列的※
※※※※※※※※※※※※※※※※※※※※※※※
※※※※※※※※※※※※※※※※※※※※※※※
方法1: 逢50输出一个
while + if
方法2: 把”一行+
”循环10遍 while+while

<?php/**循环结构——while   **/#10行50列的※$i = 0;  //当前已经打印的※的次数//思路1:while( $i<500 ){       //打印500个※    echo "※";    $i++;    //每打50的整数倍个就要输出一个<br>    if($i%50===0){        echo "<br>";    }}echo "<hr>";//思路2:执行10遍 “输出50个※+<BR>” $k = 0;   //记录内层小循环已经执行的次数while( $k<10 ){    ////////////////////////////////////    $j = 0; //当前在一行中已经打印的※数量     while( $j<50 ){        echo "※";        $j++;    }    echo "<br>";    /////////////////////////////////////    $k++;}?>

2.循环结构 —— do…while循环

语法: do{
循环主体;
}while( 循环条件);
含义: 执行循环主体,再判定循环提交是否满足,若满足则再次执行循环主体,否则就退出循环
区别:do…while… 循环主体至少执行一次;while… 循环的主体则可能一次都不执行。
练习1:使用do..while循环从0输出到9
练习2:使用do..while循环在一行中输出50个※
练习3:使用do..while循环输出10行50列的※

3.循环结构 —— for循环

语法: for(表达式1; 表达式2; 表达式3){
循环主体;
}
含义: 首先执行且仅执行一次表达式1——一般用于给计数器赋初始值。再执行表达式2的判定,若为true,则执行循环主体;循环主体执行完后,再执行表达式3——一般是计数器改变;然后再次执行表达式2的判定,若为true,则执行循环主体…..

练习1:使用for循环从0输出到9
练习2:使用for循环在一行中输出50个※
练习3:使用for循环输出10行50列的※
练习4:计算1/5+1/10+1/15+1/20+…1/50=?
分析: i5101520.5058/9+7/8+6/7+5/6+4/5+3/4+2/3+1/2=?i: 8、 7、 6、 5、…. 1
练习6:通用小程序:使用※打印如下的图形:
※ 1-1
※※ 2-1/2
※※※ 3-1/2/3
※※※※ 4-1/2/3/4
※※※※※ 5-1/2/3/4/5
练习7:通用小程序:使用※打印如下的图形:
※※※※※ 1-1/2/3/4/5
※※※※ 2-1/2/3/4
※※※ 3-1/2/3
※※ 4-1/2
※ 5-1

<?php/**循环结构——for **/for($i=1; $i<=5; $i++){      //控制行    for($j=1; $j<=6-$i; $j++){        //控制一行中的列        echo "※";    }    echo "<br>";}?>

4.数组 —— Array —— 重要

保存一个学生的成绩:score=730;5arr = [710, 690, 550, 430, 720];
注意:

(1)数组和普通变量不同

x=100;//int(100)y = [100]; //array()

(2)数组变量不能使用echo进行输出!

(3)保存在数组变量的中每个值都需要有一个下标(序号),访问某个特定的元素,需要使用其下标

语法:
$变量名 = [ 值1, 值2, …. ];
访问第$i个元素:
[i ]
获得数组中元素的个数:
count($变量名)
添加新元素:
$变量名[] = 新的元素值;

<?php/**使用数组保存多个值**/$arrScores = [98, 75, 92, 87, 77, 68];#echo $arrScores;  //错误var_dump($arrScores);  //允许echo $arrScores[0];echo $arrScores[1];echo $arrScores[2];echo $arrScores[3];echo $arrScores[4];#echo $arrScores[5];       //错误,下标5不存在echo "<hr>";echo count( $arrScores );   //返回数组中元素的个数echo "<hr>";//后来,向数组添加新元素$arrScores[6] = 10;   //7$arrScores[7] = 12;      //8$arrScores[ count($arrScores) ] = 13;  //9$arrScores[ count($arrScores) ] = 14;  //10$arrScores[ ] = 15;  $arrScores[ ] = 16;  $arrScores[ ] = 17;  echo "<hr>";#练习:使用for循环输出数组中的每个元素for($i=0;  $i<count($arrScores);  $i++){    echo $i . '&nbsp;' . $arrScores[$i].'<br>';}?>

练习:创建一个空数组,向其中保存一个员工的工资,再向其中保存一个员工的工资,再向其中保存一个员工的工资,再向其中保存一个员工的工资,使用循环输出所有的工资值

课后练习:
(1)通用小程序:使用while、do..while、for循环三种方法输出“九九乘法表”
(2)通用小程序:打印出所有的“水仙花数”。水仙花数是指一个 3 位正整数,它的每个位上的数字的三次方之和等于它本身。(例如:1*1*1 + 5*5*5+ 3*3*3 = 153)

<?php/*打印所有的三位水仙花数153 = 1*1*1 + 5*5*5 + 3*3*3思路:从100~999挨个尝试,取出每个数的百位、十位、个位的数字    328/100 =  3.28   */   //echo (328-328%100)/100;//echo intval(328/100);   //强制把一个浮点数转换为整数//echo intval( (328-3*100)/10 );//echo (328%100-8)/10;for($i=100; $i<1000; $i++){                $geWei = $i%10;      //个位    $shiWei = ($i%100-$geWei)/10;  //十位    $baiWei = ($i-$i%100)/100;  //百位    if($i=== $geWei*$geWei*$geWei + $shiWei*$shiWei*$shiWei + $baiWei*$baiWei*$baiWei){        echo $i."&nbsp;&nbsp;";    }}echo "<hr>";for($b=1; $b<=9; $b++){      //百位    for($s=0; $s<=9; $s++){ //十位        for($g=0; $g<=9; $g++){     //个位            if($b*$b*$b+$s*$s*$s+$g*$g*$g === $b*100+$s*10+$g){                echo $b*100+$s*10+$g . "&nbsp;&nbsp;";            }        }    }}

(3)通用小程序:输出100以内的质数/素数——只能被1和它自身整除的数 —— 思路:
外层循环$i从2~100
内层循环$j2~$i-1,每个都试着整除ii是质数

原创粉丝点击