php基礎(chǔ)知識(shí)6-流程控制
php是一門計(jì)算機(jī)編程語(yǔ)言,主要應(yīng)用于開發(fā)web應(yīng)用(網(wǎng)站建設(shè)等),本系列博客從php基礎(chǔ)語(yǔ)法出發(fā),介紹php基礎(chǔ)知識(shí)。使讀者深入淺出的學(xué)習(xí)到編程的樂(lè)趣。
本系列博客將講解以下9個(gè)知識(shí)點(diǎn),變量、常量、數(shù)據(jù)類型、運(yùn)算符、數(shù)組、流程控制(順序、選擇、循環(huán))、函數(shù)、文件處理、面向?qū)ο?/strong>
每篇文章都會(huì)在文末留下一個(gè)課后作業(yè),答案獲取請(qǐng)私聊我,大家可以在評(píng)論區(qū)積極討論,共同進(jìn)步

概念
流程其實(shí)就是控制決定代碼的執(zhí)行順序,在實(shí)際編程中,莫過(guò)于順序、選擇、循環(huán)這三種場(chǎng)景,我們將這三種場(chǎng)景學(xué)會(huì)后,就可以讀懂大多數(shù)的代碼。
對(duì)于初學(xué)者而言,流程控制是一大難點(diǎn)。但是卻是不可缺少的一部分。我們要認(rèn)真的學(xué)習(xí)它。
順序結(jié)構(gòu)
順序結(jié)構(gòu)顧名思義是順序執(zhí)行的,換句話來(lái)說(shuō)代碼從上往下依次執(zhí)行,不會(huì)跳過(guò)中間的某一行代碼。平時(shí)編程大多數(shù)代碼都是順序結(jié)構(gòu)。
選擇結(jié)構(gòu)
選擇結(jié)構(gòu)有點(diǎn)像高中數(shù)學(xué)里學(xué)習(xí)的程序框圖里面的分支結(jié)構(gòu),也就是說(shuō)滿足條件則這段代碼,不滿足條件則執(zhí)行另一段代碼。同時(shí)也可以嵌套其他的語(yǔ)句。php 里面主要是以if...else...、switch...case...等為主。
if...else... 如果if后面的表達(dá)式成立則執(zhí)行第一個(gè)大括號(hào)的語(yǔ)句,否則執(zhí)行第二個(gè)大括號(hào)的語(yǔ)句。
<?php
/**
* Created by 冷月小白.
* 微信公眾號(hào): 學(xué)長(zhǎng)冷月
*/
if (2>1) {
echo "2大于1";
} else {
echo "2不大于1";
}
執(zhí)行結(jié)果:
if...elseif...else 如果if后面的表達(dá)式成立則執(zhí)行第一個(gè)大括號(hào)的語(yǔ)句,然后判斷elseif的語(yǔ)句是否成立,若成立則執(zhí)行第二個(gè)大括號(hào)的語(yǔ)句,否則執(zhí)行第三個(gè)大括號(hào)的語(yǔ)句。并且可以繼續(xù)嵌套。
<?php
/**
* Created by 冷月小白.
* 微信公眾號(hào): 學(xué)長(zhǎng)冷月
*/
if (2 > 1) {
echo "2大于1";
} elseif (1 > 0) {
echo "1大于0";
} else {
echo "1不大于0";
}
執(zhí)行結(jié)果:
switch...case... 根據(jù)switch后面的大括號(hào)的值進(jìn)行 每一個(gè)case塊的匹配,匹配成功則執(zhí)行相應(yīng)的大括號(hào)的語(yǔ)句。
注:每一個(gè)case塊最后必須加上break; 否則一旦匹配成功,將會(huì)將后面的所有代碼執(zhí)行,包括其他case塊的代碼。
<?php
/**
* Created by 冷月小白.
* 微信公眾號(hào): 學(xué)長(zhǎng)冷月
*/
$month = 4;
switch ($month)
{
case 1:
echo "1月";
break;
case 2:
echo "2月";
break;
case 3:
echo "3月";
break;
case 4:
echo "4月";
break;
case 5:
echo "5月";
break;
case 6:
echo "6月";
break;
case 7:
echo "7月";
break;
case 8:
echo "8月";
break;
case 9:
echo "9月";
break;
case 10:
echo "10月";
break;
case 11:
echo "11月";
break;
case 12:
echo "12月";
break;
}
執(zhí)行結(jié)果:
循環(huán)結(jié)構(gòu)
如果有業(yè)務(wù)場(chǎng)景是需要重復(fù)執(zhí)行一段代碼,則循環(huán)結(jié)構(gòu)是二不之選。
for
for循環(huán)格式:for(表達(dá)式1;表達(dá)式2;表達(dá)式3){代碼塊}
表達(dá)式1給控制變量賦初值,表達(dá)式2為設(shè)置跳出條件,表達(dá)式3為步長(zhǎng)。
<?php
/**
* Created by 冷月小白.
* 微信公眾號(hào): 學(xué)長(zhǎng)冷月
*/
for ($i = 0; $i < 10; $i++) {
printf("我要買{$i}杯牛奶");
echo "<br />";
}
執(zhí)行結(jié)果:
while
while循環(huán)格式:while(表達(dá)式){代碼塊} 如果while的條件為永真,則會(huì)一直執(zhí)行,陷入死循環(huán);如果為永假,則一次也不執(zhí)行。
<?php
/**
* Created by 冷月小白.
* 微信公眾號(hào): 學(xué)長(zhǎng)冷月
*/
$i = 0;
while ($i<10)
{
printf("我要買{$i}杯牛奶");
echo "<br />";
$i++;
}
執(zhí)行結(jié)果:
do .. while
do..while循環(huán)格式:do{代碼塊}while(表達(dá)式) 如果while的條件為永真,則會(huì)一直執(zhí)行,陷入死循環(huán);如果為永假,則也會(huì)執(zhí)行一次。
<?php
/**
* Created by 冷月小白.
* 微信公眾號(hào): 學(xué)長(zhǎng)冷月
*/
$i = 10; //給$i 賦初值為10
do {
printf("我要買{$i}杯牛奶");
echo "<br />";
$i++;
} while ($i < 10); //$i不小于10 條件為假
執(zhí)行結(jié)果:

代碼實(shí)操
業(yè)務(wù)場(chǎng)景:小明期末考試不及格,回到家后,如果首先告訴爸爸則會(huì)被打10下手掌;如果首先告訴媽媽則會(huì)被罰跑5圈步。請(qǐng)用合適的代碼表示出來(lái)。
<?php
/**
* Created by 冷月小白.
* 微信公眾號(hào): 學(xué)長(zhǎng)冷月
*/
$i = 1; //用1代表告訴爸爸
switch ($i) {
case 1: //用1代表告訴爸爸
for ($j = 1; $j <= 10; $j++) {
printf("被打的第{$j}下手掌");
echo "<br />";
}
break;
case 2: //用2代表告訴媽媽
for ($j = 1; $j <= 5; $j++) {
printf("被罰跑的第{$j}圈");
echo "<br />";
}
break;
}
執(zhí)行結(jié)果:
課后練習(xí)
1、while 和do...while的區(qū)別
2、業(yè)務(wù)場(chǎng)景:小明期末考試考了68分,之前和爸爸約定只要誠(chéng)實(shí)的說(shuō)出分?jǐn)?shù),則無(wú)論如何都可以去一次游樂(lè)園之后每多10分就可以多去一次,請(qǐng)用合適的代碼表示出來(lái)。
課后練習(xí)答案,通過(guò)微信搜一搜「 學(xué)長(zhǎng)冷月 」回復(fù)php獲取
文章持續(xù)更新,本文 GitHub https://github.com/lengyueit/phpFamily 已收錄,歡迎Star。
