第六章 迴圈與陣列.

Slides:



Advertisements
Similar presentations
分享人:張益源. 個人資料介紹 姓名:張益源 畢業:體育系 97 級 專長:田徑、籃球、游泳 任教學校:慈濟大學實驗國民小學 學校職務:體育兼資訊老師.
Advertisements

如何學好數學? 黃駿耀老師
10 郑和远航.
三个偶像的故事和功绩 ——第12课 明清时期的反侵略斗争 董飞燕.
10 郑和远航 郑和 郑和,1371年生于云南昆阳州(今昆明晋宁县)一个信奉伊斯兰教的回族家庭,原名马和,小字三宝,十一岁时在明太祖朱元璋发动的统一云南的战争中被俘进宫,后当朱元璋四子燕王朱棣的近侍。1403年朱棣登基,史称明成祖。次年正月初一,朱棣念他有勇有谋,屡立奇功,便赐姓“郑”,改称郑和,并提拔为内宫太监,于永乐三年(1405年7月11日)率领庞大船队首次出使西洋。自1405年到1433年,漫长的28年间,郑和船队历经亚非三十余国,涉十万余里,与各国建立了政治,经济,文化的联系,完成了七下西洋的伟
戚继光抗倭.
刑事訴訟法 授課人:林俊益副教授 時間:95.9.~96.6..
妩媚人生 云 计 算 与 大规模数据并行处理技术 黄 宜 华 南 京 大 学 计算机科学与技术系 软件新技术国家重点实验室 妩媚人生 妩媚人生
第16 课 中外的交往与冲突 授课人:鲍婷.
历史上的中日关系.
食 物 中 毒.
琦君 《髻》 S 康倩瑜.
“公平”是最热的关键词 1、胡锦涛首次进行“总动员”,提出“在促进发展的同时,把维护社会公平放到更加突出的位置” 。
贵州省公务员面试 备考指导 中公教育 面试讲师 刘运龙.
外 套 各式領型與變化 武 玫 莉 製 作.
陈冤之魅,心鬼之泪 ——雾里探花 《东方快车谋杀案》 By第二小组.
三招 让孩子爱上阅读 主讲人:芝莺妈妈 2012年10月19日.
学校春季呼吸道传染病预防知识 连云港市疾病预防控制中心
创业计划书撰写.
香溢饺子馆创业计划书.
第 4 章 投资银行: 基于资本市场的主业架构.
白玉苦瓜 余光中.
第二章 如何求职 第二节 打造简历 课堂活动1:给简历找毛病.
第 4 章 PHP 基本語法.
我征服了黃山 林達的黃山之旅 2006春.
第4章 條件判斷與迴圈 Java 2 程式設計入門與應用.
迴圈 迴圈基本觀念 while迴圈 do 迴圈 for迴圈 巢狀迴圈 迴圈設計注意事項 其他控制指令 迴圈與選擇的組合.
第5章 HTML 標籤介紹.
C#程序设计案例教程 第3章 程 序 结 构.
香港普通話研習社科技創意小學 周順強老師.
第一章信託法 第一節 信託契約 第二節 信託財產 第三節 受益人 第四節 受託人 第五節 信託關係之消滅.
——奧科特公開及內部培訓 系列課程(三)之十一
P303 HTML/DHTML/CSS/JavaScript 專業HTML網頁設計 陳錦輝.
第4章 JavaScript脚本语言基础 4.1 JavaScript简介 4.2 JavaScript语法基础
第3章 JavaScript语言基础.
经 络 学.
前不久看到了这样一则报道:某个大学校园里,一个大学生出寝室要给室友留一张字条,告诉他钥匙放在哪里。可是“钥匙”两个字他不会写,就问了其他寝室的同学,问了好几个,谁也不会写,没办法,只好用“KEY”来代替了。 请大家就此事发表一下自己看法。
第三章 控制结构.
Ch07 PHP程式基礎 網頁程式設計.
利用共同供應契約 辦理大量訂購流程說明.
【PHP程式設計】 實作一:計算BMI.
第四章 網頁表單與資料傳遞.
Class 2 流程控制-選擇敘述與迴圈.
C++Primer 3rd edition 中文版 Chap 5
流程控制結構 4-1 流程控制與UML活動圖 4-2 程式區塊與主控台基本輸入 4-3 條件控制敘述 4-4 迴圈控制敘述 4-5 巢狀迴圈
檔案上傳 所謂檔案上傳,就是將檔案由客戶端的主機,藉 由瀏覽器傳送到伺服器的資料夾上。
條件判斷指令 -if 指令 -switch 指令 迴圈指令 - for 迴圈 - while迴圈 - break、continue 指令
PHP 程式流程控制結構.
本章中將會更詳細地考慮有關重複的概念,並且會 介紹for和do…while等兩種用來控制重複的敘述 式。 也將會介紹switch多重選擇敘述式。 我們會討論直接和迅速離開某種控制敘述式的 break敘述式,以及用來跳過重複敘述式本體剩餘 部份的continue敘述式。 本章會討論用來組合控制條件的邏輯運算子,最後.
PHP 變數、常數與運算子 變數 常數 運算子
网页设计与制作教程第5版 机械工业出版社同名教材 配套电子教案.
第4章 PHP流程控制语句.
程式結構&語法.
HTTP 1.1 Method OPTIONS GET HEAD POST PUT DELETE TRACE CONNECT
HTML 103 互動式網頁 助教:黃毓瑩.
第3章 JavaScript基本语句.
<编程达人入门课程> 本节内容 为什么要使用变量? 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ:
兒童及少年保護、 家庭暴力及性侵害事件、 高風險家庭 宣導與通報
目标 流程控制 字符串处理 C# 的类和对象 C# 访问修饰符 C# 构造函数和析构函数.
Web安全基础教程
PHP程式設計 五、程式流程控制結構 建國科技大學 資訊管理學系 饒瑞佶.
網頁設計實務- PHP 與資料庫整合.
第1章 数据结构基础概论 本章主要介绍以下内容 数据结构研究的主要内容 数据结构中涉及的基本概念 算法的概念、描述方法以及评价标准.
Do While 迴圈 東海大學物理系‧資訊教育 施奇廷.
第6章 PHP基本語法介紹.
PHP5與MySQL5 入門學習指南 凱文瑞克 著 第 12 章 迴圈指令.
C#快速導讀 流程控制.
第三章 流程控制 程序的运行流程 选择结构语句 循环结构语句 主讲:李祥 时间:2015年10月.
第二章 Java基本语法 讲师:复凡.
表单页面 表单是用户利用浏览器对Web站点网络数据库进行查询的一种界面,用户利用表单可以输入信息或选择选项等,然后将这些信息提交给服务器进行处理。通过表单,既可以将浏览器的信息发送到Internet服务器上,同时表单也可以使用户与站点的浏览者交互或从浏览者那里收集信息。它是网页的设计者和使用者相互交流的工具。表单对象包括文本域(单行、多行、密码)、列表、菜单、复选框、单选框、按钮等。
Presentation transcript:

第六章 迴圈與陣列

章節目錄 迴圈 中斷指令 陣列 以array函數方式規劃陣列 使用foreach存取陣列 表單與陣列 本章結論 重點提示 問題與討論

迴圈 for( ) while( ) do while( ) while與do while迴圈比較 返回章節目錄

for迴圈-1/5 for迴圈內有三個參數,這三個參數需互相搭配迴圈才會執行,所以是條件較為嚴謹且複雜的迴圈型式。 for迴圈語法的基本架構為: for(變數初始值;變數的判斷式;每執行一次迴圈後變數的變化){ 重覆執行的語法 }

for迴圈-2/5 請觀察以下範例執行的結果,若沒有使用迴圈,要寫多少行語法?請依本書第6-2頁編輯PHP網頁(「6」資料夾內「for.php」)。

for迴圈-3/5 產生重複執行的語法為:「for ($i=1;$i<=10;$i++)」,而for( )內有三個參數,其代表意義如下: 定義 語法 語法說明 變數初始值 $i=1; $i的初始值為1 判斷變數是否可在迴圈內執行 $i<=10; 當$i小於等於10的情況下 每執行一次迴圈後變數的變化 $i++ 每跑完一次迴圈$i就加1

for迴圈-4/5 一開始$i的值為1,符合「$i<=10;」的條件,所以就進入迴圈。 每跑完一次迴圈,$i的值就會加1。 條件不成立 $i++ 條件成立 echo "i->".$i."<br>"; echo "<hr>";

for迴圈-5/5 for迴圈有「固定的範圍」與「固定的變化」這兩個限制。 for迴圈適合固定數量的迴圈運用。 若資料沒有固定數量或沒有固定變化,可使用while或do while。 返回迴圈

while迴圈-1/3 while迴圈的格式: while (條件判斷){ 條件成立時會執行的迴圈語法 } 寫一個從1到9變化的迴圈,當迴圈條件成立時會如何執行?請依本書第6-4頁編輯PHP網頁(「6」資料夾內「while1.php」)。

while迴圈-2/3 當$i小於10的情況下,可以執行大括弧內的迴圈程式。 而一開始$i的值為1,符合條件則進入迴圈。 條件不成立 $i++; 條件成立 echo "i=".$i."<br>";

while迴圈-3/3 若變數初始值不符合進入迴圈的條件,while迴圈會如何執行?請依本書第6-5頁編輯PHP網頁(「6」資料夾內「while2.php」)。 因$i的初始值為11,已大於10,條件不成立故不執行迴圈。 返回迴圈

do while 迴圈-1/3 do while迴圈與while迴圈非常相似,do while迴圈的格式: do{ 執行的迴圈語法 do while迴圈是「先執行迴圈內的語法再做判斷」。我們寫一個從1到9變化的迴圈,當迴圈條件成立時會如何執行?請依本書第6-6頁編輯PHP網頁(「6」資料夾內「dowhile1.php」)。

do while 迴圈-2/3 當$i小於10的情況下,可以執行大括弧內的迴圈程式。 而一開始$i的值為1,符合條件則進入迴圈。 條件不成立 $i++; 條件成立 echo "i=".$i."<br>";

do while 迴圈-3/3 若變數初始值不符合進入迴圈的條件,while迴圈會如何執行?請依本書第6-7頁編輯PHP網頁(「6」資料夾內「dowhile2.php」)。 do while迴圈先進到迴圈內執行$i++後再做判斷,偵測到不符合條件則跳出,所以do while迴圈至少執行一次。 返回迴圈

while與do while迴圈比較 執行順序 若與條件不合 while迴圈 先判斷再執行 迴圈內的語法一次都不執行 dowhile迴圈 先執行再做判斷 只執行一次 返回迴圈

中斷指令 在迴圈進行的過程中,我們希望迴圈能做各種不同的中斷或退出,那該怎麼做呢? PHP提供了三種中斷指令:break、continue與exit,我們可由這三個指令瞭解如何中斷迴圈或特定語法的執行。 三種中斷指令: break continue exit 返回章節目錄

break- 1/2 break這個指令在前面介紹switch case時有出現過,這裡又再出現一次,break這個指令會對迴圈產生什麼影響呢? 請依本書第6-8頁編輯PHP網頁(「6」資料夾內「break.php」)。

break- 2/2 若$i等於5(請注意條件判斷式裡「等於」需用兩個「=」),echo顯示訊息後執行「break」指令。 break指令會跳出最近的一個迴圈。執行後會跳出迴圈,執行「echo "結束執行";」語法。 返回中斷指令

continue- 1/2 break指令會跳出迴圈而造成中斷,那continue呢? 請依本書第6-10頁編輯PHP網頁(「6」資料夾內「conitue.php」)。

continue- 2/2 若$i等於5(請注意條件判斷式裡「等於」需用兩個「=」),echo顯示訊息後執行「continue」指令。 返回中斷指令

exit-1/2 break與continue兩個指令常用於迴圈內,用來控制迴圈的跳出或中止後繼續執行。 break也用於switch case,用來跳出case內語法。 exit除了可用於迴圈外,也可用於一般語法內,讓我們先來看看exit於迴圈內所造成的影響。 請依本書第6-11頁編輯PHP網頁(「6」資料夾內「exit.php」)。

exit-2/2 若$i等於5(請注意條件判斷式裡「等於」需用兩個「=」),echo顯示訊息後執行「exit」指令。 exit指令會中斷之後所有網頁(含html部分)語法的執行,所以執行exit指令後,網頁會停止所有動作。 返回中斷指令

陣列 當我們知道如何用迴圈跑出多筆資料後,這些資料要如何儲存呢?假設我現在要輸入五個同學3個科目成績,要建立15個變數嗎?「陣列」可解決這個問題。 陣列初始化 陣列的索引值(數字) 陣列的索引值(文字) 返回章節目錄

陣列初始化- 1/2 現在我們設計一個成績單網頁,要儲存編號1到5號同學的國文成績,該如何儲存呢? 可用一個大箱子內放五個小箱子,這五個小箱子都有一個編號,小箱子分別放這五個同學的國文成績。

陣列初始化- 2/2 找資料時說明要找大箱子內哪一個編號的小箱子,就可以找出資料。 大箱子就是「陣列」,小箱子的編號,就是「索引值」。 「索引值」該如何設定呢?PHP提供了多種方式。 返回陣列

陣列的索引值(數字) -1/5 陣列的索引值由0開始。 陣列名稱後接著中括弧[],中括弧內可選擇輸入索引值或空白。 如果我們給予索引值,可由以下練習瞭解陣列如何給值與顯示資料。請依本書第6-14頁編輯PHP網頁(「6」資料夾內「array1.php」)。

陣列的索引值(數字) -2/5 有一個陣列叫做$chinese,這一個陣列從編號(索引值)0到4分別儲存80、60、90、50、70等分數,所以在儲存完資料後緊接著將$chinese陣列裡編號(索引值)為0到4的資料顯示在網頁上。 當我們設定陣列資料時,若不給予索引值編號,這些陣列欄位是否仍依照索引值編號進行資料存取呢?請依本書第6-15頁編輯PHP網頁(「6」資料夾內「array2.php」)。

陣列的索引值(數字) -3/5 當我們宣告陣列時,若沒有指定索引值編號,資料是由0這個編號(索引值)開始儲存。

陣列的索引值(數字) -4/5 當我們以作資料儲存時若索引值編號不連續,且有多筆資料遺漏了 索引值。請問陣列內的資料會如何排列呢? 當我們以作資料儲存時若索引值編號不連續,且有多筆資料遺漏了 索引值。請問陣列內的資料會如何排列呢? 請依本書第6-16頁編輯PHP網頁(「6」資料夾內「array3.php」)。

陣列的索引值(數字)-5/5 您會發現到陣列索引值為3的資料是60,下一筆資料並無陣列索引 值,而這筆資料索引值預設加一,也就是索引值為4的位置內容為 90。 陣列索引值為6的資料是50,下一筆資料並無陣列索引值,而這筆 資料索引值預設加一,也就是索引值為7的位置內容為70。 返回陣列

陣列的索引值(文字) PHP陣列不僅可以用數字做索引值,也可用文字作為索引值。 請依本書第6-17頁編輯PHP網頁(「6」資料夾內「array4.php」)。 返回陣列

以array函數方式規劃陣列 本節將介紹array( )函數建立數字型態或文字型態的陣列,您可與前 述建立陣列的方式作比較。 索引值=>欄位的內容 //如果後面還有欄位,請加上逗點「,」 ); //右括弧旁需加上分號「;」 以array函數建立數字型態索引值陣列 以array函數建立文字型態索引值陣列 返回章節目錄

以array函數建立數字型態索引值陣列-1/3 請依本書第6-18頁編輯PHP網頁(「6」資料夾內「array5.php」)。 請將這個例子與array1.php做一個比較。 給予陣列5筆資料,所以array( )函數內放入5筆資料,而索引值一定 由0開始,迴圈由0開始執行。

以array函數建立數字型態索引值陣列-2/3 假設班上座號1、3、6、8、9號同學的國文成績,我們希望陣列的 索引值就是座號,那這個陣列該怎麼規劃呢?請依本書第6-19頁編 輯PHP網頁(「6」資料夾內「array6.php」)。

以array函數建立數字型態索引值陣列-3/3 若忘記給予索引值,資料會如何排列呢?請依本書第6-20頁編輯 PHP網頁(「6」資料夾內「array7.php」)。您會發現到沒有標示 陣列索引值的欄位,會依照前一筆資料的索引值自動加一,例如「90」分這一筆記錄並沒有索引值,而前一筆記錄「60」的索引值 為3,所以「90」分這一筆記錄索引值設定為4。 返回以array函數方式規劃陣列

以array函數建立文字型態索引值陣列 請依本書第6-21頁編輯PHP網頁(「6」資料夾內「array9.php」)。 請留意本例中索引值為文字型態。 返回以array函數方式規劃陣列

使用foreach存取陣列 我們可使用for迴圈讀取陣列的內容,但for迴圈條件判斷式必 須設定起始值與範圍,如果陣列資料屬於變動狀態,很難設定for迴 圈的範圍,且for迴圈無法判斷欄位是否有值,需加寫if條件判斷式 判斷。存取陣列時建議使用foreach取代for迴圈。 foreach基本的格式如下: foreach(陣列名稱 as 變數名稱) 或 foreach(陣列名稱 as 索引值 => 變數名稱) 當foreach開始執行時,陣列內部的指標會自動指向第一個欄位。 foreach第一種格式 foreach第二種格式 返回章節目錄

foreach第一種格式-1/4 foreach第一種格式為: foreach(陣列名稱 as 變數名稱)。 請依本書第6-22頁將array6.php修改為foreach型式的PHP網頁(「6」資料夾內「foreach1.php」)。

foreach第一種格式-2/4 foreach語法執行時將陣列的索引值歸零(指向第一筆記錄),然後每 次執行迴圈時依序將陣列索引值所儲存的內容放入$value1變數中, 直到陣列裡每一個內容都讀取為止。 比較一下for迴圈與foreach語法的差異: for迴圈 foreach迴圈 for ($a=0; $a<5; $a++) echo "$chinese[$a] <br>" ; foreach ($chinese as $value1) echo $value1."<br>";

foreach第一種格式-3/4 文字型態索引值陣列若要以for迴圈依序取值,因為索引值不是「數 字」,所以設計上困難度頗高,但若使用foreach,您可以很快速的將 所有資料列出。 請依本書第6-23頁將設計foreach型式的PHP網頁(「6」資料夾內「foreach2.php」)。

foreach第一種格式-4/4 當我們設計陣列時,若中間有幾個索引值並沒有儲存資料,我們需使用條件判斷式進行判斷,如使用foreach,那會如何呢? 請依本書第6-24頁設計foreach型式的PHP網頁(「6」資料夾內「foreach3.php」)。 返回使用foreach存取陣列

foreach第二種格式-1/2 foreach第二種格式為 foreach(陣列名稱 as 索引值 => 變數名稱) 請依本書第6-25頁修改foreach3.php為可利用foreach語法顯示索引值(「6」資料夾內「foreach4.php」)。

foreach第二種格式-2/2 請您留意foreach4.php內foreach語法: foreach ($chinese as $key1 =>$value1) echo "座號".$key1."同學的成績為:".$value1."<br>" ; 以foreach語法將陣列 $chinese中資料依序取出,並將索引值存入 $key1變數,而內容放到$value1變數內。第11行則將索引值($key1) 與內容($value1)顯示。 返回使用foreach存取陣列

表單與陣列-1/4 表單網頁設計時,您可能會提供很多的元件給使用者使用,但您必須 考慮接收端PHP網頁也得建立很多$_POST或$_GET陣列變數來接收 資料。 表單網頁設計時可將多個元件的name命名為同名的元件以方便 接收,我們在此以核選框為例。 表單上核選框checkbox本身就可以提供複選,但如果選項以分組的 方式設計成多組選項讓使用者勾選,接收端PHP網頁接收資料時就 可用foreach方式處理資料。

表單與陣列-2/4 請依本書第6-26頁設計表單網頁(「6」資料夾內「 multicheck.htm 」)。

表單與陣列-3/4 以Linux選項為例,您可看到這三個選項的name是同名: <input type="checkbox" value="fedora" name="linux[]">fedora <input type="checkbox" value="opensuse" name="linux[]">opensuse <input type="checkbox" value="ubuntu" name="linux[]">ubuntu 這幾個選項的name都是linux[],代表這是一個陣列,名稱是linux, 所以這三個選項不論哪一個選項勾選,接收端PHP網頁收到的變數 名稱為linux。

表單與陣列-4/4 請依本書第6-27頁設計接收資料的PHP網頁(「6」資料夾內「 multicheck.php 」)。 返回章節目錄

本章結論 透過本章的介紹,可讓大家更熟悉迴圈與陣列,並利用陣列處理同 性質的大量資料。 透過本章的介紹,可讓大家更熟悉迴圈與陣列,並利用陣列處理同 性質的大量資料。 使用陣列可降低變數的數量,再搭配foreach語法,可降低陣列存取 的困難。 您也看到PHP網頁語法行數愈來愈多,有些語法若經常使用,我們 可以將這些語法集中起來,建立自訂函數,就可以減少程式碼,節 省PHP網頁開發時間。 而除了自訂函數外,有些資料分析與處理,其實不必自己動手設 計,PHP就提供不少的系統函數可以使用。例如處理日期時間等資 訊,系統提供不少相關函數,可快速運用及減少程式碼的開發,避 免不必要的重複。下一章將為各位介紹「函數」。 返回章節目錄

重點提示-1/3 for迴圈語法的基本架構為: for(變數初始值;變數的判斷式;每執行一次迴圈後變數的變化) { 重覆執行的語法 } while迴圈語法的基本架構為: while (條件判斷) {條件成立時會執行的迴圈語法} do while迴圈語法的基本架構為: do{執行的迴圈語法} while (條件判斷);

重點提示-2/3 do while迴圈的while( )這一行有加上分號「;」。 break指令控制迴圈的跳出及用於switch case內跳出case區塊。 continue指令控制迴圈中止後繼續執行。 exit除了可用於迴圈外,也可用於一般語法內,執行後網頁會停止所 有動作。 宣告陣列若沒有指定索引值編號,資料是由索引值編號0開始儲存, 以array方式規劃陣列其格式為 陣列名稱=array( 索引值=>欄位的內容 //如果後面還有欄位,請加上逗點「,」 ); //右括弧旁需加上分號「;」 foreach基本的格式如下: foreach(陣列名稱 as 變數名稱) 或 foreach(陣列名稱 as 索引值 => 變數名稱) 返回章節目錄

問題與討論-1/2 1.請說明for迴圈內三個參數意義。 2.當條件不成立時,while及do while迴圈會執行嗎? 3.當條件成立,希望能中斷網頁的執行,請問該使用哪一個 中斷指令? 4.當條件成立,希望能跳出最近的迴圈,請問該使用哪一個 中斷指令? 5.當條件成立,希望能中止現在的迴圈而繼續執行下一個迴圈 ,請問該用哪一個中斷指令?

問題與討論-2/2 6.PHP陣列可否使用文字當作索引值?請舉例。 7.PHP陣列數字索引值是由哪一個數值開始? 8.foreach語法如何顯示出索引值?請舉例。 9.核選框若要以分組方式設計,該如何設計? 10.若要接收分組的核選框資訊,該如何判斷分析目前接收的資料? 返回章節目錄