Ch04 VB.NET的流程控制 網頁程式設計.

Slides:



Advertisements
Similar presentations
1 程式語言 Visual Basic 循序結構、選擇結構 黃瀧輝 老師 Long Hwai,Huang.
Advertisements

Visual Basic 程序设计 第四讲.
第 4 章 PHP 基本語法.
計算機概論 第4章 基本視窗程式應用 4-1 程式語言簡介 4-2 演算法與流程圖 4-3 視窗程式語言設計 4-4 資料結構.
課程名稱:程式設計 授課老師:________
第四章 控制结构.
Access数据库程序设计 总复习.
上課囉 職場甘苦談 小資男孩向錢衝 育碁數位科技 呂宗益/副理.
第3章 JavaScript语言基础.
高等医药院校药学类第三轮规划教材——大学计算机基础
第五章 数组.
四 VBScript编程基础.
VBA应用开发与实例 李 辉 微软课程培训讲师. VBA应用开发与实例 李 辉 微软课程培训讲师.
Ch07 PHP程式基礎 網頁程式設計.
Ch03 VB.NET語法建立ASP.NET 網頁程式設計.
Visual Basic程序设计.
ASP VBScript 基础知识.
BLANK overview.
Chapter 1 複習.
Visual Basic 2010 程式設計16堂特訓 第七堂 VB的迴圈流程控制.
第6章 数 组 6.1 一维数组 6.2 控件数组 6.3 二维数组.
講師:戴志華 國立台灣大學電機工程研究所 Visual Basic 程式設計 講師:戴志華 國立台灣大學電機工程研究所.
数组 第 6 章.
流程控制結構 4-1 流程控制與UML活動圖 4-2 程式區塊與主控台基本輸入 4-3 條件控制敘述 4-4 迴圈控制敘述 4-5 巢狀迴圈
ASP.NET 網頁製作教本 – 從基本語法學起
1 巨集 2 資料型態 3 物件、屬性、方法與事件 4 陳述式與副函式 5 其他注意事項 6 範例
程式語言 I – VISUAL BASIC 選擇結構語法與應用 Chapter 7 認知
ASP动态网页设计实用教程 主讲教师: 开课单位:.
算法与程序设计.
Access VBA程序设计 本章重点 Access Basic编程语言 运算符、函数与表达式 Access Basic语句 模块的使用
第4章 程序控制结构与算法基础.
計算機程式 廖文淵 Department of Computer Science and Engineering
新觀念的 VB6 教本 第七章 讓程式轉彎的控制敘述.
第4章 基本的控制结构 4.1 顺序结构 4.2 选择结构程序设计 4.3 循环结构 4.4 综合实例 退出.
数学3(必修)—— 算 法 ALGORITHM 苏州大学数学科学学院 徐稼红
流程控制、陣列 台南市聖功女子高級中學 毛全良.
條件判斷指令 -if 指令 -switch 指令 迴圈指令 - for 迴圈 - while迴圈 - break、continue 指令
PHP 程式流程控制結構.
程式語言Visual Basic 重複結構 黃瀧輝 老師 Long Hwai,Huang.
6-1 For…Next迴圈敘述 6-2 While…End While迴圈敘述 6-3 Do…Loop迴圈敘述 6-4 巢狀迴圈敘述
第12章 VBA模块设计.
第7章 Web伺服器檔案與XML文件的處理 7-1 System.IO名稱空間的基礎 7-2 伺服器的資料夾與檔案操作
第3 章 VBScript的控制结构.
丙級電腦軟設-VB程式設計 資料來源:林文恭研究室 整理:張福生.
第5章 Visual Basic控制结构 之 常用算法举例
電腦解題─流程圖簡介 臺北市立大同高中 蔡志敏老師.
PCR300 (13.56MHz) Reader RS232/USB.
算法与程序设计 周少品.
VB程序设计语言 主讲教师:王 杨.
VB程序设计语言 主讲教师:王 杨.
程式設計 Visual Basic簡介 週次:2 建國技術學院 資管系 饒瑞佶 2003年9月17日.
程式語言(I)- Visual Basic 6.0 第 8 章 模組化程式設計I-副程式與自定函數.
For x = 0 To 9 For y = 0 To 9 z = *x + 10*y …… Next y
江西财经大学信息管理学院 《数据库应用》课程组2007
Ch 08 陣列 視窗程式設計.
小结 郭清溥.
经典算法之 冒 泡 排 序.
Visual Basic 程序设计教程.
现代信息技术 微电子技术 计算机技术 传感技术 通信技术 处理、存储信息的技术 传感、采集技术 传递信息的技术
第二章、第三章错题分析.
第3章 JavaScript基本语句.
第四章 控制结构 1、顺序控制结构 2、选择结构 3、循环结构.
本节内容 Lua基本语法.
單元名稱:結構化程式設計 報告人 劉洲溶.
PHP程式設計 五、程式流程控制結構 建國科技大學 資訊管理學系 饒瑞佶.
顺序查找与二分查找复习.
第6章 PHP基本語法介紹.
算法与Visual Basic程序基础(二)
講師:劉俊民(金剛) Idea 創意應用科技有限公司
科目:程式語言與設計 老師:蔣德威 本檔案可至以下網址下載: www1.chihlee.edu.tw/teachers/ctw/prog
Presentation transcript:

Ch04 VB.NET的流程控制 網頁程式設計

流程控制的基礎 程式語言撰寫的程式碼大部分是一列指令接著一列指令循序的執行,但是對於複雜的工作,為了達成預期的執行結果,需要使用「流程控制結構」(Control Structures)。 流程控制可以配合條件判斷以便執行不同區塊的程式碼,或是重複執行區塊的程式碼,流程控制指令可以分為兩類,如下所示: 條件控制:條件控制是一個選擇題,可能為單一選擇或多選一,依照條件運算子的結果,決定執行那一個區塊的程式碼。 迴圈控制:迴圈控制是重複執行區塊的程式碼,其中擁有結束條件,以便結束迴圈的執行。

流程控制的基礎(續) 判斷結構 (decision structures) 迴圈結構 (loop structures) If...Then…Else Select…Case Try…Catch…Finally 迴圈結構 (loop structures) For...Next For Each...Next Do...Loop While…End While

VB.NET的條件控制 If … Then是否選條件敘述 If … Then … Else二選一條件敘述 If … Then … ElseIf多選一條件敘述 Select Case多選一條件敘述 Try…Catch…Finally處理可能有錯誤的程式片斷(例如:除以零)

If … Then是否選條件敘述-說明 If…Then條件敘述是一種是否執行的條件,決定是否執行區塊內的程式碼,如果If條件為True,就執行Then...End If間的程式碼,如下所示: If score >= 60 Then Response.Write(name & "成績及格! ") Response.Write("學生成績: " & score & "<br>") End If

If … Then是否選條件敘述-流程圖

範例1: 將分數轉換成等第 優等: 90分(含)以上 甲等: 80分(含)以上 乙等: 70分(含)以上 丙等: 60分(含)以上 丁等: 低於60分

範例1: 將分數轉換成等第 加上HTML Dim score = 76 <head> <title>Ch 04 範例1 Ex04_01.aspx</title> </head> <body> <% 加上HTML Dim score = 76 Response.Write("分數 : " & score & "==> 得") If (score >= 90) Then Response.Write("優等<br>") End If If (score < 90 And score >= 80) Then Response.Write("甲等<br>") If (score < 80 And score >= 70) Then Response.Write("乙等<br>") If (score <70 And score >= 60) Then Response.Write("丙等<br>") If (score < 60) Then Response.Write("丁等<br>") VB… %> </body> </html>

If … Then … Else二選一條件敘述-說明 如果是排它情況的2個執行區塊,只能二選一,我們可以加上Else指令,如果If條件為True,就執行Then...Else間的程式碼,False就執行Else...End If間的程式碼,如下所示: If sex = "男" Then Response.Write(name & "男士您好! ") Else Response.Write(name & "女士您好!<br>") End If

If … Then … Else二選一條件敘述-流程圖

範例2: 將分數轉換成等第 Dim score = 76 Response.Write("分數 : " & score & "==> 得") If (score >= 90) Then Response.Write("優等<br>") Else ‘小於90 If (score >= 80) Then Response.Write("甲等<br>") Else ‘小於80 If (score >= 70) Then Response.Write("乙等<br>") Else ‘小於70 If (score >= 60) Then Response.Write("丙等<br>") Else ‘小於60 Response.Write("丁等<br>") End If

If … Then … ElseIf多選一條件敘述-說明 If … Then … ElseIf條件敘述屬於If … Then條件敘述的延伸,使用ElseIf指令建立多選一條件指令,如下所示: dtWeekday = Weekday(Today) If dtWeekday = 1 Then wdstring="星期日" ElseIf dtWeekday = 2 Then wdstring="星期一" ElseIf dtWeekday = 3 Then ………. Else wdstring="無法分辨是星期幾" End If

If … Then … ElseIf多選一條件敘述-流程圖

範例3: 將分數轉換成等第 Dim score = 76 Response.Write("分數 : " & score & "==> 得") If (score >= 90) Then Response.Write("優等<br>") ElseIf (score >= 80) Then Response.Write("甲等<br>") ElseIf (score >= 70) Then Response.Write("乙等<br>") ElseIf (score >= 60) Then Response.Write("丙等<br>") Else Response.Write("丁等<br>") End If

Select Case多選一條件敘述-說明 dtWeekday = Weekday(Today) Select Case dtWeekday Case 1: wdstring="星期日" Case 2: wdstring="星期一" Case 3: wdstring="星期二" Case 4: wdstring="星期三" Case 5: wdstring="星期四" Case 6: wdstring="星期五" Case 7: wdstring="星期六" Case Else Wdstring="無法分辨是星期幾" End Select

Select Case多選一條件敘述-流程圖

範例4: 將分數轉換成等第 Dim score = 76 Response.Write("分數 : " & score & "==> 得") Select Case score Case Is >= 90: Response.Write("優等<br>") Case 80 To 89: Response.Write("甲等<br>") Case 70 To 74, 75, 76, 77 To 79: Response.Write("乙等<br>") Case Is < 70, Is >= 60: Response.Write("丙等<br>") Case Else Response.Write("丁等<br>") End Select 注意:Case 之後可以接的型式

範例5: 將分數轉換成等第 Dim score = 76 Response.Write("分數 : " & score & "==> 得") Select Case (score \ 10) '做整數除法 Case 9: Response.Write("優等<br>") Case 8: Response.Write("甲等<br>") Case 7: Response.Write("乙等<br>") Case 6: Response.Write("丙等<br>") Case Else Response.Write("丁等<br>") End Select 另一種想法:利用整數除法

練習一 撰寫一程式,可以將阿拉伯數字轉成英文 1->one 2->two 3->three …

VB.NET的迴圈控制種類 For … Step … Next迴圈 For Each … In … Next迴圈 Do …Exit Do … Loop迴圈 Do While … Loop迴圈 Do Until … Loop迴圈 Do … Loop While迴圈 Do … Loop Until迴圈 While … End While迴圈

For … Step … Next迴圈-說明 For Step Next迴圈指令可以執行固定次數的迴圈,其結束條件是Step量每次增加或減少一個值,當到達結束條件值就結束迴圈,例如:For Next迴圈每次增加1,執行1到10次相加的迴圈,如下所示: Dim i, total As Integer For i = 1 To 10 Step 1 total = total + i Next i

For … Step … Next迴圈-流程圖

巢狀的For … Next迴圈-說明 巢狀迴圈指的是在For Next迴圈中擁有其它For Next迴圈,迴圈有如巢狀般層層排列,如下所示: For i = 1 To 9 For j = 1 To 9 …… Next j Next i

巢狀的For … Next迴圈-執行過程

範例6:列出同學名單 說明: 將學生的名單存在names陣列中 names[0] = “愛力斯” names[1] = “馬提”

範例6:列出同學名單 Dim names(5) As String Dim i As Integer names(0) = "愛力斯" For i = 0 to 4 Response.Write(i & "號同學是 " & names(i) & "<br>") Next i Ex04_06.aspx

For Each … In … Next迴圈 For Each迴圈是使用在集合物件或陣列,可以顯示集合物件或陣列的所有元素,特別適合那些不知道到底有多少元素的集合物件或陣列,如下所示: For Each userName in names Response.Write("<td>" & userName & "</td>") Next 程式碼變數name為陣列,這個迴圈可以取得所有陣列的元素。

範例7:列出同學名單 Dim names(5) As String Dim userName As String For Each userName in names Response.Write(userName & "<br>") Next

Exit For中斷For迴圈 如果在迴圈尚未到達結束條件時,我們可以使用Exit For指令強迫跳出For Next迴圈,結束迴圈的執行,如下所示: For i = 1 To 100 Step 1 … Exit For Next For Next迴圈指令中插入Exit For指令,當迴圈執行到此指令就會中斷迴圈的執行。

Do …Exit Do … Loop迴圈-說明 Do Loop迴圈在VB.NET屬於十分重要且變化最多的迴圈結構,搭配條件測試可以在3種位置測試迴圈的結束條件,如下: 迴圈開始:在迴圈開始使用While或Until指令測試迴圈條件。 迴圈結尾:在迴圈結尾使用While或Until指令測試條件,結尾測試迴圈至少執行一次。 中斷迴圈:在迴圈中使用Exit Do指令中斷迴圈的執行。

Do …Exit Do … Loop迴圈-中斷迴圈 如果沒有使用While或Until指令在迴圈頭尾測試條件,單純Do Loop迴圈是一個無窮迴圈,我們可以使用Exit Do指令結束迴圈,如下所示: Do …. Exit Do i = i + 1 Loop Do Loop迴圈插入Exit Do指令,當迴圈執行到此指令就會中斷迴圈執行,Do Loop迴圈需要自行使用計數器變數來增減其值。

Do While … Loop迴圈-說明 Do Loop迴圈使用While條件在迴圈開頭檢查,開頭檢查的目的是判斷是否允許進入迴圈,換句話說,While指令的測試條件如果成立時才能進入迴圈,如下: i = 1 total = 0 Do While i <=10 total = total + i i = i + 1 Loop

Do While … Loop迴圈-流程圖

Do Until … Loop迴圈-說明 Do Loop迴圈使用Until條件在迴圈開始檢查,Until直到條件成立,如果條件不成立就進入迴圈,如下所示: i = 1 total = 0 Do Until i > 10 total = total + i i = i + 1 Loop

Do Until … Loop迴圈-流程圖

Do … Loop While迴圈-說明 Do Loop迴圈如果使用While條件在迴圈結尾檢查,這個Do Loop迴圈至少會執行一次,如下所示: i = 1 total = 0 Do total = total + i i = i + 1 Loop While i <= 10

Do … Loop While迴圈-流程圖

Do … Loop Until迴圈-說明 Do Loop迴圈使用Until條件在迴圈結尾檢查,這個迴圈至少會執行一次,如下所示: i = 1 total = 0 Do total = total + i i = i + 1 Loop Until i > 10

Do … Loop Until迴圈-流程圖

Do/While … Loop/Until的巢狀迴圈 Do Loop迴圈如同For Next迴圈一樣,可以使用各種組合建立巢狀迴圈,如下所示: Do While i <= 9 j = 1 Do Response.Write(i & "*" & j & "=" & i*j) j = j + 1 Loop Until j > 9 i = i + 1 Loop

While … End While迴圈 While End While迴圈就是VB 6的While Wend迴圈,它是在迴圈開始測試條件,在功能上和Do While Loop迴圈相同,同樣While End While迴圈也可以建立巢狀迴圈,其架構如下所示: While i <= 9 j = 1 Response.Write(i & "*" & j & "=" & i*j) j = j + 1 End While i = i + 1

範例8:列出同學名單 Do While … Loop Dim names(5) As String Dim i As Integer Response.Write("Do While ... LOOP <br>") i = 0 Do While ( i <= Ubound(names)) Response.Write(names(i) & "<br>") i += 1 Loop

範例8:列出同學名單 Do Until … Loop Dim names(5) As String Dim i As Integer Response.Write("Do Until ... LOOP <br>") i = 0 Do Until ( i > Ubound(names)) Response.Write(names(i) & "<br>") i += 1 Loop

範例8:列出同學名單 Do … Loop While Dim names(5) As String Dim i As Integer Response.Write("Do ... LOOP While <br>") i = 0 Do Response.Write(names(i) & "<br>") i += 1 Loop While ( i <= Ubound(names))

範例8:列出同學名單 Do … Loop Until Dim names(5) As String Dim i As Integer Response.Write("Do ... LOOP Until <br>") i = 0 Do Response.Write(names(i) & "<br>") i += 1 Loop Until ( i > Ubound(names))

範例8:列出同學名單 While … End While Dim names(5) As String Dim i As Integer Response.Write("While ... End While <br>") i = 0 While ( i <= Ubound(names)) Response.Write(names(i) & "<br>") i += 1 End While

VB.NET的錯誤處理-語法 在VB.NET提供更結構化的錯誤處理敘述,即Try End Try,如下所示: Try ' 測試的錯誤程式碼 ……………… Catch e As Exception ' 錯誤處理的程式碼 Finally …………… End Try

VB.NET的錯誤處理-說明 錯誤處理敘述可以分為3個部分,如下: Try程式區塊:在Try和Catch指令間的程式區塊是VB.NET需要錯誤處理的程式碼。 Catch程式區塊:如果Try程式區塊的程式碼發生錯誤,在Catch到Finally指令間的程式區塊將會傳入參數e的Exception例外物件,可以使用e.ToString()方法顯示錯誤資訊,或建立錯誤處理的補救程式碼。 Finally程式區塊:這是選擇性的程式區塊,不論錯誤是否產生,都會執行此區塊的程式碼,通常是用來善後的程式碼。

範例9:顯示錯誤訊息指出除以0 <html> <head> <title>第四章範例9:錯誤處理程式敘述</title> </head> <body> <% Dim x As Integer = 150 Dim y As Integer = 10 Try x = x / y Catch E As Exception Response.Write("程式錯誤: " & E.ToString()) Finally Response.Write("<hr>測試值 x = " & x & "<br>") Response.Write("測試值 y = " & y & "<br>") End Try %> </body> </html>

練習二製作 “算術教學網頁” 教學內容為: 1+1=2 2+2=4 3+3=6 Ex04_09.aspx

練習三 請在ASP.NET程式使用 迴圈計算1到150所有偶數的總和 For/Next Do While/Loop Do Until/Loop Do/Loop While Do/Loop Until While/End While 迴圈計算1到150所有偶數的總和