美文网首页
第4天 PHP分支、循环结构

第4天 PHP分支、循环结构

作者: zphphp | 来源:发表于2019-10-31 17:41 被阅读0次

    6. 流程控制

    流程控制,就是研究程序的走向。

    6.1. 流程控制概述

    6.1.1. 三大流程结构:

    顺序结构:
    程序运行的自然状态,就是从前往后(从上到下)运行程序。
    分支结构:
    程序运行过程中,根据判断条件的不同结果(true或false),执行不同的分支(其他分支不再执行)。
    循环结构:
    程序运行过程中,根据判断条件的不同结果(true或false),决定是再次执行还是不再执行。

    6.1.2. 流程图常用图形符号:

    6.2. if语句

    有如下几种常见的if语句(不同的分支数量):

    6.2.1. 形式1:单分支

    形式:

    if (  条件判断 ){
    //如果条件满足,就执行这里
    }
    

    流程图:


    image.png

    6.2.2. 形式2:双分支

    形式:

    if (  条件判断 ){
    //如果条件满足,就执行这里
    }
    else{
    //如果条件不满足,就执行这里
    }
    

    流程图:


    image.png
    image.png

    6.2.3. 形式3:多分枝

    形式:

    if (  条件判断1 ){
    //分支1;
    }
    elseif(  条件判断2 ){
    //分支2;
    }
    elseif(  条件判断3 ){
    //分支3;
    }
    。。。。。。。前面的elseif分支,可以若干个(0个以上)
    else{
    //最后的else分支,可以没有!
    }
    

    流程图:


    image.png image.png

    <u>综合案例:</u>

    在一个form表单中输入一个分数(0-100之间),程序可以给该分数进行“评语”,评语包括:

    优秀,良好,中等,及格,不及格。

    6.3. 分支结构之switch分支语句(重点)

    语法:

    switch( 一个变量数据或表达式结果$v1 ){
    case  值1:  //如果$v1 等于 这个“值1”,就执行本分支
    分支语句1;
    break;  //表示跳出该分支,也就是跳出switch语句。
    case  值2:  //如果$v1 等于 这个“值2”,就执行本分支
    分支语句2;
    break;
    。。。。。。  //可以更多的分支
    default:
    默认分支;  //前面都不满足的时候,就执行这里
    }
    

    说明:
    1,上述“值1,值2,。。。”可以是各种标量类型,也可以是表达式——因为最终它也是一个值。
    2,用于进行测试的数据变量$v1跟后续的各个值,只能进行“相等比较”(==)。
    3,从上述第2条角度来说,其实际上不如if灵活。
    注意:
    当某个分支满足条件并执行该分支后,如果该分支中没有break语句,此时,程序的流程会“直接进入”后一个分支继续执行,直到碰到break才会结束switch。
    流程图:

    image.png
    <u>示例:</u>
    image.png
    无break终止时:
    image.png
    案例1:
    使用switch实现
    把成绩进行分档:60分以下:不及格;60-69:及格; 70-79:中等;80-89:良好;90-99:优秀;100:满分

    案例2:
    输入任意的年份和月份,输出该月的天数,例如:输入year:2019 month:7,输出该月的天数是31天
    思路:天数是根据月份来决定,正常的是:1,3,5,7,8,10,12都是31天,4,6,9,11都是30天,唯一不同的是:
    2月,如果是闰年是29天,非闰年则为28天。
    <?php
      /*
        输入任意的年份和月份,输出该月的天数,例如:输入year:2019  month:7,输出该月的天数是31天
      思路:天数是根据月份来决定,正常的是:1,3,5,7,8,10,12都是31天,4,6,9,11都是30天,唯一不同的是:
            2月,如果是闰年是29天,非闰年则为28天。
       */
       $year=2000;
       $month=2;
       switch ($month) {
         case 1:
         case 3:
         case 5:
         case 7:
         case 8:
         case 10:
         case 12:
         echo "31天";
         break;
        case 4:
        case 6:
        case 9:
        case 11:
            echo "30天";
            break;
        case 2:
            if($year%4==0&&$year%100!=0 || $year%400==0){
              echo "29天";
            }else{
              echo "28天";
            }
            break;        
         default:
         echo "非法的月份";
         break;
       }
    

    6.4. 循环结构之while循环语句

    循环的含义:就是通过某种语法结构,对某段代码可以“反复执行”。

    while循环语法:
        **初始化数据**
    while(条件判断){
    。。。。循环体语句;
    循环控制;
    }
    

    说明:
    循环一开始就进行条件判断:
    如果成立:则执行循环体,而后会自动回到循环开始位置继续进行条件判断,如此反复;
    如果不成立:则退出循环,执行后续语句。
    流程图:

    image.png

    <u>案例1:</u>
    1)输出1-10;

    image.png
    2)求1-10的和;
    image.png
    <u>案例2:</u>
    求7到17的和。
    image.png
    <u>案例3:</u>
    1、输出1-100之间既能被3整除,也能被6整除的数
    image.png
    2、一张纸的厚度是2mm,问:折叠多少次后能够达到珠峰的高度(8848米)
    image.png

    6.5. 循环结构之do while循环语句

    **do while循环语法:**
    **   初始化数据**
    do {
    。。。。循环体语句;
    循环控制;
    }while(条件判断);
    

    说明:
    先执行一次循环体,然后进行条件判断:
    如果成立:则继续回去执行循环体,而后再次进行条件判断,如此反复;
    如果不成立:则退出循环,执行后续语句。
    流程图:

    image.png
    image.png
    <u>案例:</u>
    求7到177之间能被7整除的数的和。
    image.png

    6.6. 循环结构之for循环语句(重点/难点)

    for循环语法:

    for(循环变量初始化1; 循环条件判断2; 循环变量的改变3){
    。。。。。。。。循环体语句块4;
    //这里可以有多条语句
    //是可以反复执行的部分
    }
    

    说明:
    1,执行流程如下图所示

    image.png
    2,此语句结构是将循环的3个要素都集中在一起写的形式,比较紧凑,容易控制,最常用。
    3,循环变量初始化语句1只执行一次,所以真正的正常循环,是在“2->4->3”之间进行。
    典型流程图:
    image.png
    <u>案例1:</u>
    求1-100之间能被7整除的数的和。
    image.png
    <u>案例</u>****<u>2:</u>
    输出1-100之间能被3整除但不能被5整除的偶数。
    image.png
    <u>案例3:</u>
    输出1-100之间的数,并且要求:
    能被3整除的使用“三”代替,能被5整除的使用“五”代替,能同时被两者整除的用“三五”代替。
    image.png

    6.7. 循环的中断

    循环是按给定的条件,只要条件满足就会继续执行循环体的一种语法形式。
    但,我们也可以在循环过程中(循环体内),人为将循环中断。
    有两种中断循环的方式:
    continue中断:
    含义:中断当前正在进行的循环体(即后续语句不再执行),继续下一次循环要执行的语句。
    语法形式:

    continue  [$n];  //表示是要中断第几层的循环,继续该层循环的下一次。
    //其中$n可以省略,如果省略,表示1,就是中断当前层的循环。
    

    break中断:
    含义:停止(跳出)当前正在进行的循环(即完全终止循环),去执行该循环之后的语句。
    语法形式:

    break  [$n];  //表示是要中断几层循环。
    //其中$n可以省略,如果省略,表示1,就是中断当前循环
    他们都适用于3种循环。
    

    <u>案例演示:</u>
    1、输出1-10的数,除了5不输出,其他都输出出来。

    image.png
    image.png

    2、从1-10(含1和10)进行循环并输出该数字,并要求能被3整除就不输出,能被9整除就终止循环。

    最后再输出循环变量的值。

    image.png

    while和for的区别:
    1、能用for解决的,while基本能解决;
    2、for一般用于知道循环次数的场景,while循环一般用于不知道循环次数的场景

    6.8. 多重循环及案例

    概念:
    多重循环就是循环里面由出现循环的代码。
    其基本执行流程,其实仍然是循环的基本逻辑,只是循环的时候要注意:外层循环执行每一次,里层循环就会完整执行循环的“所有次”(一个完整循环的过程)。
    <u>案例</u>****<u>1:</u>

    image.png
    输出如下形式的数字到页面上:
    1 2 3 4 5 6 7 8
    2 2 3 4 5 6 7 8
    3 2 3 4 5 6 7 8
    4 2 3 4 5 6 7 8
    image.png
    1 2 3 4 5
    1 2 3 4 5
    1 2 3 4 5
    1 2 3 4 5
    image.png image.png

    <u>案例</u>****<u>2:</u>

    输出如下表格:

    1 2 3 4 5 6
    7 8 9 10 11 12
    13 14 15 16 17 18
    19 20 21 22 23 24

    方法一:


    image.png

    方法二:

    1 2 3 4 5 6
    7 8 9 10 11 12
    13 14 15 16 17 18
    19 20 21 22 23 24
    image.png
    <u>案例3:</u>

    实现如下所示99乘法口诀表。


    image.png
    image.png

    <u>案例4:</u>
    有红、白、黑三种球若干个,其中红、白球共25个,白、黑球共31个,红、黑球共28个,求这三种球各多少个?
    课间案例:
    公鸡5元一只,母鸡3元一只,小鸡1元3只,100元买了100只鸡,问各多少?

    image.png

    相关文章

      网友评论

          本文标题:第4天 PHP分支、循环结构

          本文链接:https://www.haomeiwen.com/subject/tqwtbctx.html