PHP フロー制御における if ステートメントの複數(shù)のネスト
クラスメイトの王六松さん、最初の話で、彼には生活秘書(shū)と仕事秘書(shū)の2人の秘書(shū)がいると言いました。
學(xué)生の王六松さんも、旅行やプロジェクトにおいて非常によく計(jì)畫(huà)を立てています。彼は出張の旅程を人生の秘書(shū)と仕事の秘書(shū)にそれぞれ割り當(dāng)てました:
人生の中で:
まずは天気を確認(rèn)し、雨が降った場(chǎng)合は雨具とタオルをご持參ください。雨が降っていない場(chǎng)合は日焼け止めをお持ちください
雨具、タオル、日焼け止めの狀態(tài)を事前に確認(rèn)して、ない場(chǎng)合は早めに購(gòu)入してください職場(chǎng):
大連に行く前に作業(yè)計(jì)畫(huà)について事前に連絡(luò)する必要があり、準(zhǔn)備ができたら、時(shí)間內(nèi)にチェックインし、資格があるかどうかを確認(rèn)し、フォームを印刷して署名する必要があります。
準(zhǔn)備が間に合わない場(chǎng)合は、プロジェクトに関するコミュニケーションの主なトピックをリストします。
上記の狀況と同様に、if...elseif...else を繰り返しネストした構(gòu)造を使用する必要があります。
if文の中に1つ以上のif文を入れ子にして複數(shù)のパラメータの判定を?qū)g現(xiàn)することができます。これがif文の多重入れ子です。その構(gòu)造形式は次のとおりです:
<?php if(判斷1){ if(判斷2){ 代碼段 1 }else{ 代碼段2 } }else{ if(判斷3){ 代碼段3 }else{ 代碼段4 } } ?>
フローチャートを使用して次のように表します:
注:
- コードセグメント 1、2、3、および 4 に判定を追加できます。実際の狀況に応じてネストを追加することもできます
- インデントに注意してください。インデントの機(jī)能は、コードを階層化して美しく読みやすくすることだけであり、ターゲットコードの生成には影響しません。
コードを使用して、王六松氏の生活要件を入れ子構(gòu)造で表現(xiàn)できます。 3 レベルのネストされた構(gòu)造を使用し、コードは次のとおりです:
<?php //0表示工作秘書(shū),1表示生活秘書(shū) //用代碼模擬隨機(jī)產(chǎn)生當(dāng)前的工作是生活秘書(shū)的還是工作秘書(shū)的 $mishu = rand(0,1); if($mishu){ //下雨和不下雨的狀態(tài),隨機(jī)產(chǎn)生 //下雨?duì)顟B(tài)為1 //不下雨?duì)顟B(tài)為0 $xiyu = rand(0,1); if($xiyu){ //是否購(gòu)買雨傘 $you = rand(0,1); if($you){ echo '下雨天,已購(gòu)買不用買雨傘'; }else{ echo '下雨天,未購(gòu)買,需要買雨傘'; } }else{ //是否購(gòu)買防曬霜 $you = rand(0,1); if($you){ echo '沒(méi)下雨,有防曬霜'; }else{ echo '沒(méi)下雨,需要準(zhǔn)備防曬霜'; } } }else{ //是否準(zhǔn)備好了會(huì)議議程 $shifou = rand(0,1); if($shifou){ echo '已準(zhǔn)備好,可以隨時(shí)出發(fā)'; }else{ echo '沒(méi)有準(zhǔn)備好,需要打印,延遲出發(fā)'; } }
警告: 初心者プログラマの場(chǎng)合、このネストされた if...else ループを使用するときは注意してください。ループの層が多すぎると、設(shè)計(jì)ロジックで問(wèn)題が発生しやすくなったり、中括弧などが少なすぎると、プログラムで説明できない問(wèn)題が発生したりするためです。
黙って書(shū)いていただければ幸いです。また、文法上の誤りが 1 つもあってはならない。將來(lái)的には、脳內(nèi)ですぐに反応したいときにいつでも書(shū)き始めることができます。