PHP-分支語句、while循環、for循環

分支語句

無論在何種編程語言中,流程控制都是很重要的內容。由于 PHP 的大部分語法都繼承了C語言的特點,
因此在流程控制方面,PHP 有著和C語言類似的流程控制。
if else 語句是流程控制中根據條件判斷執行的一種。該語句執行時先對條件進行判斷,然后根據判斷結
果做出相應的操作。它又可以細分為三種,分別是 if 語句、if…else 語句、if…else if…else 語句。

  1. if 語句

if 語句是流程控制中最簡單的一種。只判斷某個條件是否為真,如果為真就執行特定的語句塊。語法格
式如下

if (判斷條件) {
語句塊;}

如果需要執行的語句塊包含一條以上的語句,則要使用{ }把 它們括起來,表示一個整體;如果要執行的
語句只有一條,就可以省略大括號標記。像下面這樣

if (判斷條件)
一條語句;

在這里插入圖片描述

<?php
//定義一個數字,使用 if 語句判斷這個數字是不是偶數,$num = 34;if ($num % 2 == 0) {echo '$num ='.$num.', 是偶數!';}?>

if…else 語句
if 語句只能對判斷結果為真的情況執行操作,這在很多情況下是不夠的,于是就有了 if…else 這種形式的
語句。與 if 判斷不同,if…else 語句不僅對判斷結果為真的情況執行操作,對非真的情況也可以執行相應
的操作。
else 語句延伸了 if 語句,可以在 if 語句中表達式的值為 FALSE 時執行相應的語句。另外需要注意的
是,else 語句是 if 語句的從句,必須和 if 語句一起使用,不能單獨存在。

if (判斷條件) {
語句塊 1;} else {
語句塊 2;}

在上面的格式中,如果“判斷條件”為真,則執行“語句塊 1”;否則執行“語句塊 2”。“語句塊 1”和“語句塊
2”都可以包含多條語句。與 if 語句相同的是,如果“語句塊 1”和“語句塊 2”中都只包含一條語句的話,可
以省略大括號{ }.
在這里插入圖片描述

 <?php$num = rand(1,31);  //生成一個 1~31 之間的隨機數if ($num % 2 == 0) {echo '$num ='.$num.', 是偶數!';} else {echo '$num ='.$num.', 是奇數!';}?>

if…else if…else 語句
else if 語句和 else 語句一樣,它延伸了 if 語句,else if 語句會根據不同的表達式來確定執行哪個語句

 if (判斷條件 1) {語句塊 1;} else if (判斷條件 2) {語句塊 2;} else if (判斷條件 3) {語句塊 3;}......else if (判斷條件 n) {
語句塊 n;}else{
語句塊 n+1;}

在上面的 else if 的語法中,如果第一個“判斷條件 1”為 TRUE,則執行“語句塊 1”語句;如果第二個“判斷
條件 2”為 TRUE,則執行“語句塊 2”語句;以此類推。如果表達式的條件都不為 TRUE,則執行 else 子句
中的“語句塊 n+1”語句,當然最后的 else 語句也可以省略。
在 else if 語句中同時只能有一個表達式為 TRUE,即在 else if 語句中只能有一個語句塊被執行。如果有
多個表達式的值為 TRUE 時,只會執行第一個表達式所對應的語句塊。
在這里插入圖片描述

<?php$score = 89; 
if ($score > 90) {echo '成績的級別為:優!';} else if ($score > 70) {echo '成績的級別為:良!';} else if ($score > 60) {echo '成績的級別為:中!';} else {echo '成績的級別為:差!';}?>

switch
switch 語句和 if…else if…else 語句相似,也是一種分支結構,與 if…else if…else 語句相比 switch 語句
更加簡潔明了。
switch 語句由一個表達式和多個 case 標簽組成,case 標簽后緊跟一個代碼塊,case 標簽作為這個代碼
塊的標識。

switch(表達式){case1:
語句塊 1;break;case2:
語句塊 2;break;... ...casen:
語句塊 n;break;default:
語句塊 n+1;}

switch 語句根據表達式的值,依次與 case 中的值進行比較,如果不相等,繼續查找下一個 case;如果
相等,就會執行對應的語句,直到 switch 語句結束或遇到 break 為止。
一般來說,switch 語句最終都有一個默認值 default,如果在前面的 case 中沒有找到相符的條件,則執
行默認語句,和 else 語句類似。
在這里插入圖片描述
和 if 語句不同的是,switch 語句后面表達式的數據類型只能是整型或字符串,不能是 bool 型。通
常這個表達式是一個變量名稱,雖然 PHP 是弱類型語言,在 switch 后面表達式的變量可以是任意
類型數據,但為了保證匹配執行的準確性,最好只使用整型或字符串中的一種類型。
和 if 語句不同的是,switch 語句后面的花括號是必須有的。
case 語句的個數沒有規定,可以無限增加。但 case 標簽和 case 標簽后面的值之間應該有一個空
格,值后面必須有一個冒號,這是語法的一部分。
switch 匹配完成以后,將依次逐條執行匹配的分支模塊中的語句,直到 switch 結構結束或者遇到
了 break 語句才停止執行。所以,如果一個分支語句的后面沒有寫上 break 語句,程序將會繼續
執行下一個分支語句的內容。
與 if 語句中的 else 類似,switch 語句中 default 標簽直接在后面加上一個冒號,看似沒有條件,
其實是有條件的,條件就是“表達式”的值不能與前面任何一個 case 標簽后的值相等,這時才執行
default 分支中的語句。default 標簽和 if 中的 else 子句一樣,它不是 switch 語句中必需的,可以
省略

<?php$week = date('D');
##  
循環語句
循環語句可以在滿足條件的情況下反復執行某一個操作。在 PHP 中提供了 4 個循環控制語句,分別是 
whiledo whileforforeach(主要用于遍歷數組)循環語句。1. while 循環 
while 循環的作用是反復執行某一項操作,是循環語句中最簡單的一個。該語句的特點是:先判斷表達
式,當表達式結果為真時執行相應的語句。
while 循環的語法格式如下:switch($week){case 'Mon':echo '星期一';break;case 'Tue':echo '星期二';break;case 'Wed':echo '星期三';break;case 'Thu':echo '星期四';break;case 'Fri':echo '星期五';break;case 'Sat':echo '星期六';break;case 'Sun':echo '星期日';break;}?>
  1. while循環
    while 循環的作用是反復執行某一項操作,是循環語句中最簡單的一個。該語句的特點是:先判斷表達
    式,當表達式結果為真時執行相應的語句。
 while (表達式) {
語句塊;}

當表達式的值為真時,將執行循環體內的 PHP 語句塊,執行結束后,再返回到表達式繼續進行判斷,判
斷為真時繼續執行語句塊中的代碼,直到表達式的值為假時才跳出循環。
在這里插入圖片描述
while 循環中“表達式”的計算結果一定要是布爾型的 TRUE 或 FALSE,如果是其他類型的值也會自動轉換
為布爾類型的值。通常這個表達式是使用比較運算符或者邏輯運算符計算后的值。“語句塊”是一條語句
或一個復合語句(代碼塊)。當 while 循環語句中只有一條語句時可以將包裹代碼塊的大括號{ }省略。
如果是多條語句的代碼塊,則一定要使用大括號{ }包裹起來。

<?php$num = 1;while($num <= 10) {echo $num.($num == 10 ? '' : ', ');$num++;}?>

do while 循環
do while 和 while 循環非常相似,區別在于 do while 循環的表達式是在每次循環結束時檢查而不是在
開始時,而且不論表達式的結果如何 do while 循環語句都會執行一次,因為表達式的值是每次循環結束
后才檢查的。而在 while 循環中就不同了,表達式的值在循環開始時檢查,如果一開始就為 FALSE,則
整個循環立即終止。

do {
語句塊;} while (表達式);

其中 while 語句中“表達式”的計算結果也一定要是布爾型的 TRUE 或 FALSE。“語句塊”也可以是一條語句
或一個復合語句(代碼塊)。當 do while 語句語句塊中只有一條語句時,也可以省略大括號{ }。
注意:使用 do while 時最后一定要有一個分號;,分號也是 do while 循環語法的一部分。
do while 循環語句的執行流程是:先執行一次循環體中的語句塊,然后判斷表達式的值,當表達式的值
為 TRUE 時,返回重新執行循環體中的語句塊,如此反復,直到表達式的值等于 FALSE 為止,此時循環
結束。其特點是先執行循環體,然后判斷循環條件是否成立。
在這里插入圖片描述

<?php$sum = 0;$i = 1;do {$sum += $i;$i++;} while ($i <= 50);echo '1 + 2 + 3 +...+ 49 + 50 = '. $sum;?>

for循環
for 循環是 PHP 中最復雜的循環結構。for 循環語句能夠按照已知的循環次數進行循環操作,適用于明
確知道執行次數的情況。
for 循環的格式和前面介紹的while 和 do while 兩種循環語句不一樣,for 循環將控制循環次數的變量預
先定義在 for 語句中。雖然 for 循環是 PHP 中最復雜的循環結構,但使用起來非常方便。

for (初始化表達式; 條件判斷; 變量更新) {
循環體;}

參數說明如下:
·初始化表達式:通常用于聲明一個計數器的初始值,即循環開始的值;
·條件判斷:用于控制是否執行循環體中的代碼,如果條件為 FALSE ,則立即退出循環;
·變量更新:循環每執行一次,馬上修改計數器的值;
·循環體:條件判斷為真時,需要執行的若干代碼。
在這里插入圖片描述
通過 for 循環來計算 100 的階乘

<?php$sum = 1;for ($i = 1; $i <= 100; $i++) {$sum *= $i;}echo '100! = '.$sum;?>

for 循環語句也可以像 while 語句一樣嵌套使用,即在 for 循環語句中包含另外的一個或多個 for 循環語
句。通過對 for 循環語句進行嵌套,可以完成一些復雜的編程。比如打印九九乘法表

<?phpfor ($i = 1; $i <= 9; $i++) {for ($j = 1; $j <= $i; $j++) {echo $j.' * '.$i.' = '.$i*$j.'&nbsp;&nbsp;';}echo '<br>';}?>

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/94335.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/94335.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/94335.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

并發編程常用工具類(下):CyclicBarrier 與 Phaser 的協同應用

在并發編程中&#xff0c;除了CountDownLatch和Semaphore&#xff0c;CyclicBarrier和Phaser也是實現多線程協作的重要工具。它們在處理多階段任務同步、動態調整參與線程等場景中展現出獨特價值。本文作為并發工具類系列的第二篇&#xff0c;將深入解析CyclicBarrier和Phaser的…

機器人焊接節氣裝置

在摩托車制造過程中&#xff0c;精密部件的焊接質量直接影響整車的安全性和操控性能。以發動機缸體焊接為例&#xff0c;傳統手工焊接容易出現焊縫不均勻的問題&#xff0c;而采用六軸弧焊機器人后&#xff0c;焊接精度能控制在0.1毫米以內。日本川崎重工的生產數據顯示&#x…

使用yolo11訓練食物浪費檢測數據集VOC+YOLO格式6734張32類別步驟和流程

【數據集介紹】數據集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路徑的txt文件&#xff0c;僅僅包含jpg圖片以及對應的VOC格式xml文件和yolo格式txt文件)圖片數量(jpg文件個數)&#xff1a;6734標注數量(xml文件個數)&#xff1a;6734標注數量(txt文件個數)&#xff1…

掌握PowerPC架構與編程技巧:技術資料詳解

本文還有配套的精品資源&#xff0c;點擊獲取 簡介&#xff1a;PowerPC是一種高性能的RISC架構&#xff0c;最初由IBM、Motorola和Apple聯合開發&#xff0c;被設計用于高端工作站和服務器&#xff0c;同時廣泛應用于嵌入式系統、航空電子設備、游戲主機和超級計算機等領域。…

VR 企業展廳:開啟數字化展示新時代

在當今數字化浪潮席卷各行各業的時代&#xff0c;企業的展示與宣傳方式也在不斷革新。VR&#xff08;虛擬現實&#xff09;技術的出現&#xff0c;為企業展廳帶來了全新的變革&#xff0c;使其從傳統的實體展示空間&#xff0c;轉變為具有無限可能的數字化虛擬空間。一、VR 企業…

測試用例顆粒度全解析

引言&#xff1a;為什么顆粒度是測試團隊的“隱形門檻”&#xff1f;在軟件測試領域&#xff0c;測試用例顆粒度&#xff08;即測試用例的詳細程度&#xff09;看似是一個基礎問題&#xff0c;卻常常成為團隊協作的“隱形門檻”。某電商平臺測試團隊曾出現過這樣的窘境&#xf…

分布式鎖的基本原理和基于lua腳本的實現(Redisson)

為了確保分布式鎖可用&#xff0c;我們要確保鎖的實現同時滿足以下四個條件&#xff1a;- 互斥性。在任意時刻&#xff0c;只有一個客戶端能持有鎖。- 不會發生死鎖。即使有一個客戶端在持有鎖的期間崩潰而沒有主動解鎖&#xff0c;也能保證后續其他客戶端能加鎖。- 解鈴還須系…

智慧園區數字孿生全生命周期交付體系:從虛擬建模到全域智聯的快速交付新常態

在數字經濟與綠色低碳轉型的雙重驅動下&#xff0c;智慧園區建設正經歷從“物理空間堆砌”到“數據智能驅動”的范式革命。數字孿生技術作為核心引擎&#xff0c;通過構建物理園區的虛擬鏡像&#xff0c;實現虛實空間的毫秒級同步與智能協同&#xff0c;推動園區管理向全要素感…

電腦忘記開機密碼怎么辦?【圖文詳解】5種方法重置/更改/取消/設置開機密碼?

一、問題背景誰都有馬虎的時候&#xff0c;要是突然忘了電腦開機密碼&#xff0c;就只能對著登錄界面干著急&#xff0c;沒法打開電腦處理工作、查看文件&#xff0c;太影響效率了。別慌&#xff0c;其實有不少簡單實用的辦法能解除或重置密碼&#xff0c;下面就來一一介紹&…

Go語言select

select是什么select是Go語言層面提供的一種多路復用機制&#xff0c;用于檢測當前goroutine連接的多個channel是否有數據準備完畢&#xff0c;可用于讀或寫。Go語言的select語句&#xff0c;是用來起一個goroutine監聽多個Channel的讀寫事件&#xff0c;提高從多個Channel獲取信…

VUE+SPRINGBOOT從0-1打造前后端-前后臺系統-整體示例

一、注冊、登錄、密碼找回二、VUE前臺系統三、VUE后臺系統

深入解析SmolVLA:VLM與動作專家間的注意力機制交互

在機器人學習領域&#xff0c;如何有效地將視覺語言模型&#xff08;VLM&#xff09;的強大感知能力與低級動作控制相結合&#xff0c;是實現通用機器人智能的關鍵挑戰。SmolVLA&#xff08;Small Vision-Language-Action&#xff09;架構正是在這一背景下應運而生&#xff0c;…

Spring Security 認證與授權實現機制

Spring Security 是一個功能強大且高度可定制的身份驗證和訪問控制框架&#xff0c;其認證和授權實現機制如下&#xff1a;一、認證(Authentication)實現 1. 核心組件 AuthenticationManager&#xff1a;認證入口點&#xff0c;委托給AuthenticationProviderAuthenticationProv…

開源的時間跟蹤工具TimeTagger

簡介 什么是 TimeTagger &#xff1f; TimeTagger 是一個開源的時間跟蹤工具&#xff0c;旨在幫助用戶記錄和分析他們的時間使用情況。它提供了一個互動的用戶界面和強大的報告功能&#xff0c;適合個人和自由職業者使用。 主要特點 直觀的用戶界面&#xff1a;基于互動時間線…

學習游戲制作記錄(角色屬性和狀態腳本)8.4

1.實現簡單的角色屬性創建CharactorState腳本&#xff1a;掛載在敵人和玩家身上public float damage;//角色傷害public float maxHp;//最大生命[SerializeField] private float currentHealth;//當前生命void Start(){currentHealth maxHp;//初始化將當前生命設置為最大生命}p…

04-Chapter02-Example01

文章介紹 1、完善項目結構 1.1 新建第二章對應模塊Chapter021.2 新建模塊Chapter02對應包com.itheima1.3 在包com.itheima下新建class類 &#xff0c;類名稱Example01.java項目結構如下&#xff1a;2、編寫Example01.java代碼 P38 package com.itheima;public class Example01…

【達夢MPP(帶主備)集群搭建】

達夢MPP&#xff08;帶主備&#xff09;集群搭建 為了提高MPP系統可靠性&#xff0c;克服由于單節點故障導致整個系統不能繼續正常工作的問題&#xff0c;DM在普通的MPP系統基礎上&#xff0c;引入數據守護主備機制&#xff0c;為每一個MPP節點配置一個實時備庫作為備份節點&a…

Java基礎學習(一):類名規范、返回值、注釋、數據類型

目錄 一、類名規范二、返回值三、注釋四、數據類型 1. 基本類型2. 引用類型3. 強制數據類型轉換4. 進制5. 進制的轉換6. 超范圍運算 相關文章 Java基礎學習&#xff08;二&#xff09;&#xff1a;Java中的變量和常量、final&#xff08;重點&#xff09;、運算、字符串 了…

Nginx相關實驗(2)

nginx的一些高級配置 nginx狀態頁 基于nginx 模塊 ngx_http_stub_status_module 實現&#xff0c; 在編譯安裝nginx的時候需要添加編譯參數 --with-http_stub_status_module 否則配置完成之后監測會是提示語法錯誤 #檢查模塊是否配置 如果不存在需要添加模塊重新編譯 nginx …

2.Java和C++有什么區別

2.Java和C有什么區別 1.在C中&#xff0c;支持操作符重載&#xff0c;而在Java里是不允許的 2.C支持多繼承&#xff0c;而Java不可以&#xff0c;但Java可以單繼承多實現 3.Java內置多線程機制&#xff0c;而C沒有 4.Java里面自帶了垃圾回收機制&#xff0c;可以自動清理緩存等…