05224AA12.indd

Similar documents
05322AR13.indd

國立北斗家商 107 學年度第 2 學期第二次期中考科目 : 計算機應用 計算機概論 IV 班級 : 商二 1 2 貿二 資二 綜二 1 作答方式 : 答案卡 選擇題共 33 題, 除第 1 題 4 分, 其餘每題 3 分, 注意作答時間 1. ( ) 使用 Visual Basic 程式語言 (

【電腦閱卷專用】

05855BT05.indd

Excel VBA Excel Visual Basic for Application

Microsoft PowerPoint - VB14.ppt

<4D F736F F D DA5BFA6A1C476C1C92DBEC7ACECB8D5A8F728B57BB35D292E646F63>

05224AA11.indd

840 提示 Excel - Excel -- Excel (=) Excel ch0.xlsx H5 =D5+E5+F5+G5 (=) = - Excel 00

CHAPTER VC#

民國八十九年台灣地區在校學生性知識、態度與行為研究調查

投影片 1

untitled

投影片 1

<4D F736F F D B0D3B77EC3FEA7DEC3C0C476C1C9A5BFA6A1B8D5C3442DB57BA6A1B35DAD702DBEC7ACEC2E646F6378>

05224AA15.indd

Visual Basic D 3D

單步除錯 (1/10) 打開 Android Studio, 點選 Start a new Android Studio project 建立專案 Application name 輸入 BMI 點下 Next 2 P a g e

穨文件1

Microsoft PowerPoint - VB5

0 0 = 1 0 = 0 1 = = 1 1 = 0 0 = 1

工 序 的 是 ( ) A. 卷 筒 切 筒 装 药 造 粒 B. 搬 运 造 粒 切 引 装 药 C. 造 粒 切 引 包 装 检 验 D. 切 引 包 装 检 验 运 输 7. 甲 公 司 将 其 实 施 工 项 目 发 包 给 乙 公 司, 乙 公 司 将 其 中 部 分 业 务 分 包 给

星星排列 _for loop Protected Sub Page_Load(ByVal sender As Object, ByVal e As Dim h As Integer = 7 'h 為變數 ' Dim i, j As Integer For i = 1 To h

Microsoft Word - ACI chapter00-1ed.docx

1 1 Excel VBA 說明 ( ) (_) STEP4 Excel 2 STEP5 A1 1 B2 2 C3 3 STEP6 A1 STEP7 > > 1-11

投稿類別:電子工程類

(Microsoft Word - wes _\246p\246\363\250\317\245\316LED\277O\305\343\245\334\252\254\272A.doc)

Microsoft Word - 小心翼翼的二十一點N.doc

竞赛报名与报名审核

碩命題橫式

Python_02

Microsoft PowerPoint - C_Structure.ppt

4

<4D F736F F D D342DA57CA7DEA447B14D2DA475B57BBB50BADEB27AC3FEB14DA447B8D5C344>

2011国家司法考试试题(试卷一)

廳, 一 道 道 經 過 營 養 師 建 議 的 菜 餚, 被 美 美 地 擺 放 在 雅 緻 的 白 色 康 寧 餐 具 上, 而 且 餐 廳 設 有 水 果 部 門, 不 但 提 供 新 鮮 果 汁, 一 盤 盤 特 別 挑 選 過, 又 大 又 美 的 各 色 水 果, 如 蓮 霧 梨 子 芭

p-2

Microsoft Word C-A卷.docx

SyncMail AJAX Manual

此運算子具有的優先順序高於下一個區段且低於前一個區段 請注意, 您可以按一下運算子以移至內附範例的詳細資料頁面 x && y 邏輯 AND 如果第一個運算元為 false,c# 就不會評估第二個運算元 條件 OR 運算子 此運算子具有的優先順序高於下一個區段且低於前一個區段 請注意, 您可以按一下運

編輯大意 一 本書是一本專為普通高中 技術高中學生編寫的程式語言入門書籍, 全書以 Visual Basic 2015 Express 版的程式開發環境, 來介紹程式基礎實作, 適合首次學習程式語言及程式設計的學生使用 二 本書共分 Ⅰ Ⅱ 兩冊,Ⅰ 冊著重介紹程式設計概念與流程控制,Ⅱ 冊則著重介

The golden pins of the PCI card can be oxidized after months or years

X6-04_How_do_I_write_a_com_port_communicate_program_of_XPAC_tc

2014教师资格证考试《中学综合素质》仿真模拟题(4)

※※※※※

Microsoft Word - (103-2高中部)體育常識測驗題庫.docx

民 國 105 年 大 專 程 度 義 務 役 預 備 軍 官 預 備 士 官 考 選 簡 章 目 錄 壹 考 選 依 據 1 貳 考 ( 甄 ) 選 對 象 1 參 資 格 規 定 1 肆 員 額 及 專 長 類 別 2 伍 報 名 及 選 填 志 願 日 期 方 式 3 陸 選 填 官 科 (

PowerPoint Presentation

附 錄

iziggi


多層次傳銷與獎金系統

任務二 : 產生 20 個有炸彈的磚塊, 放在隨機的位置編輯 Block 類別的程式碼 import greenfoot.; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) Write a description of class

論鄭玄對《禮記‧月令》的考辨

Microsoft Word - 095_ 什麼最快樂 (白話與經文加註)-ok .doc

1 500 表 1: 各國平均分數

福 建 福 州 市 长 乐 市 电 视 机 影 音 及 配 件 产 品 小 家 电 产 品 长 乐 市 吴 航 洪 鸣 家 用 电 器 维 修 店 长 乐 市 西 洋 北 路 69 号 福 建 福 州 市 平 潭 县 电 视 机 影 音 及 配 件

SIK) 者, 需 實 施 1 年 以 上, 經 體 格 檢 查 無 後 遺 症 者 5. 身 體 任 何 部 分 有 刺 青 紋 身 穿 耳 洞 者, 不 得 報 考, 各 項 檢 查 結 果 須 符 合 體 位 區 分 標 準 常 備 役 體 位 二 在 校 軍 訓 成 績 總 平 均 70 分

Spyder Anaconda Spyder Python Spyder Python Spyder Spyder Spyder 開始 \ 所有程式 \ Anaconda3 (64-bit) \ Spyder Spyder IPython Python IPython Sp

CHAPTER 1

VB程序设计教程

IsPostBack 2

中 国 家 庭 动 态 调 查 说 明 中 国 家 庭 动 态 调 查 旨 在 通 过 对 全 国 样 本 家 庭 及 其 成 员 的 调 查, 搜 集 个 体 家 庭 和 村 / 居 层 次 的 多 时 点 信 息, 获 得 中 国 社 会 发 展 与 变 迁 的 资 料, 为 社 会 提 供 有

/5 9/9 9/22 9/26 9/29 0/3 源 源 不 絕 的 太 陽 能 源 感 恩 寫 作 散 文 名 篇 選 讀 : 季 節 三 月 合 歡 雪 / 陳 列 與 太 陽 能 相 關 唐 詩 宋 詞 ; 並 請 學 生 探 討 附 件 詩 詞 環 保 概 念 與 可 利 用

2012年国家公务员考试行测真题及参考解析

Microsoft PowerPoint - VB3

Python a p p l e b e a r c Fruit Animal a p p l e b e a r c 2-2

( )1

VB控件教程大全

Visual C# 2005程式設計

C/C++基礎程式設計班

untitled

<4D F736F F D20AFB4A7C7A555B2D5C2B4A657B3E62E646F63>

YS1.mps

5. 10(1) 10(2) A-1 17(2) 7. A-2 18A B

VB.Net

Chapter 16 集合

2 WF 1 T I P WF WF WF WF WF WF WF WF 2.1 WF WF WF WF WF WF

一 家 庭 成 员 与 收 支 情 况 100 您 本 人 配 偶 和 子 女 ( 包 括 在 本 地 老 家 和 其 他 地 方 的, 但 不 包 括 已 婚 分 家 的 子 女 ) 以 及 与 您 在 本 户 同 住 的 家 庭 其 他 成 员 共 有 几 口 人? 口 人 表 101: 请 谈

Microsoft PowerPoint - Chapter4

國立台北商業技術學院附設空中商業專科進修學校

PowerPoint 簡報

輕鬆學 Dreamweaver CS5 網頁設計..\Example\Ch0\ \.html..\example\ch0\ \mouse.txt..\example\ch0\ \ _Ok.html 學習重點 JavaScript 複製程式碼 mouse.txt Ctrl+C Ctrl+C 0-4

第一次段考 二年級社會領域試題 郭玉華 (A)(B) (C)(D)

(E). (A) (B) (C) (D) (E). (A) (B) (C) (D) (E) (A) (B) (C) (D) (E) (A) (B) (C) (D). ( ) ( ) ( ) ( ) ( ) ( ) (A) (B) (C) (D) (E). (A) (B) (C) (D) (E). (

表二 105 年國中教育會考英語科閱讀與聽力答對題數對應整體能力等級加標示對照表 閱讀答 對題數 聽力答對題數 待加強待加強待加強待加強待加強待加強待加強待加強待加強待加強待加強待加強

( )... 5 ( ) ( )

四川省普通高等学校

cs

第三篇 第 10 章 - 管理者登入第 11 章 - 更改網路商店 Logo 第 12 章 - 系統設定第 13 章 - 商品上架第 14 章 - 付款方式設定第 15 章 - 出貨方式設定第 16 章 - 特價商品 oscommerce 103

使用手冊

<453A5CC2EDC0F6C5C5B0E6CEC4BCFE5CC3F1B7A8A1A4C9CCB7A8A1A4C3F1CAC2CBDFCBCFB7A8D3EBD6D9B2C3D6C6B6C8D5AACEC4BCFE574F52445CB9D9B7BDD0DEB6A9B5E7D7D3B7FECEF1A3A8A1B6C3F1CBDFBDE2CACDA1B7BACDA1B6C1A2B7A8B7A8A1B7A3A92E646F63>

Microsoft PowerPoint - Chapter3

untitled

Java 程式設計入門

多媒體應用 13 新增專案並完成版面配置 <ExMusic01> <activity_main.xml> ImageView ID imgplay ImageView ID imgstop ImageView ID imgfront TextView ID txtsong TextView ID t

. (A) (B) (C) A (D) (E). (A)(B)(C)(D)(E) A

!""# $!""%!"&" #

If Close[Length]!= 0 Then B Close[Length] 是 Length 日前的 Close 不是 0 的話則執行 B % Number 以 Divisor 來求取除法並傳回剩下的部份和 Divisor 具備相同的符 號 格式 :Number % Divisor Numb

Transcription:

計算機概論 CHAPTER 12 條件判斷敘述日常生活中, 我們經常會遇到需要抉擇的問題, 例如到餐廳吃飯, 若店內已在客滿, 可選擇等位, 或者到其他餐廳用餐 ; 週末夜晚我們可選擇看電影 到 KTV 唱歌, 或是和家人相聚 在程式語言中, 也經常會遇到有關程式執行路徑中需要判斷及抉擇的問題, 此時可使用條件判斷敘述來處理 在使用條件判斷敘述時, 經常需搭配比較運算子與邏輯運算子一起使用, 以下先介紹這 2 種運算子, 再介紹 If 敘述與 Select Case 敘述 12-1 比較與邏輯運算子 你開條件, 我判斷 比較運算子用來比較 2 個資料項目的大小關係 ; 邏輯運算子用來判斷運算敘述邏輯的真假, 這 2 類運算子的運算結果只有成立與不成立 2 種 ; 若比較結果成立為 True( 一般以 T 或真表示 ); 若比較結果不成立為 False( 一般以 F 或假表示 ) 以下分別說明這 2 種運算子的用法 12-1.1 比較運算子 比較運算子的概念就類似, 小華在超商買飲料時, 會先比較身上帶的錢 ( 如 20 元 ) 與飲料的售價 ( 如 30 元 ), 看是否帶夠錢 我們在使用比較運算子來比較 2 個資料項目的大小時, 比較結果只有 True 和 False 兩種 表 12-1 為 Visual Basic 的 6 種比較運算子說明與範例 300 表 12-1 各種比較運算子說明與範例比較運算子意義範例結果 = 等於 1 = 2 False > 大於 1 > 2 False < 小於 1 < 2 True >= 大於或等於 1 >= 2 False <= 小於或等於 1 <= 2 True <> 或 >< 不等於 1 <> 2 True

第 12 章 條件判斷敘述 單元 3 字串資料的比較 比較運算子也可用來比較 2 個字串資料的大小, 比較規則為 : 先以 2 個字串的第 1 個字元的 註 Unicode 碼比較, 若相等, 再比較第二個字元, 以此類推, 依序比較字串中的其它字元之 Unicode 碼 ( 圖 12-1)? "Visual" > "Basic" True? "Book" < "Basic" False 比較第 1 個字元 "V" 與 "B" 的 Unicode, 86 > 66 結果為 True( 真 ) 第 1 個字元相同 (B), 比較第 2 個字元 "o" 與 "a" 的 Unicode,111 < 97 結果為 False( 假 ) 圖 12-1 比較運算子的運算範例 請注意! 在字串比較中, 各類字元由小到大分別為 : 數字 0 9 < 大寫字母 A Z < 小寫字母 a z < 中文字 我們可以利用如圖 12-2 的單字卡快速記住這些字元的大小順序 1 Access 存取 數字 < 大寫字母 < 小寫字母 < 中文字 字元大小順序 : 小 Unicode 碼 大 圖 12-2 利用單字卡快速記住字元大小順序的示意圖 12-1.2 邏輯運算子 接續上例, 當小華到超商買飲料時, 發現不夠 10 元, 這時如果小明也在場, 且 (And) 身上有 10 元, 小華就可以跟他借錢買飲料 上述實例中 2 個條件 ( 小明在 有 10 元 ) 同時成立才能買飲料的情況, 就類似邏輯運算子中 And 的概念 Visual Basic 的邏輯運算子依運算的優先順序依序為 Not And Or XOR 表 12-2 為 4 種邏輯運算子的運算實例 註 Unicode 是一套全球通用的文字編碼系統, 又稱萬國碼或統一碼 萬用碼 此編碼系統是以 16 個位元來表示一個字元, 共可表示 65,536(2 16 ) 個字元或符號 301

計算機概論 表 12-2 各種邏輯運算子說明與運算實例 優先順序 邏輯運算子 意義範例 1 範例 2 1 Not ( 非 ) 真變假 假變真 Not 1 < 2 = Not True = False Not 2 >= 3 = Not False = True 2 3 And ( 且 ) Or ( 或 ) 兩邊皆真, 結果為真 兩邊皆假, 結果為假 1 < 2 And 2 > 3 = True And False = False 1 < 2 Or 2 > 3 = True Or False = True 1 < 2 And 3 > 1 = True And True = True 1 > 2 Or 2 = 3 = False Or False = False "Not And Or XOR" 優先順序可以這樣記 :"Not at all. XD", 意思是 " 別客氣 ( 笑臉符號 )" XD 4 Xor ( 互斥或 ) 一真一假, 結果為真 1 < 2 Xor 2 > 3 = True Xor False = True 1 < 2 Xor 3 > 1 = True Xor True = False 邏輯運算子經常和比較運算子結合使用 當運算式中同時含有比較運算子 邏輯運算子, 以及上一章所介紹的算術運算子時, 其運算的優先順序依序為 : 算術運算子 > 比較運算子 > 邏輯運算子 ( 圖 12-3) a = 1 b = 2 c = 3? Not a > b c False {Boolean} Boolean: False? a < b Or b > a And c < b True {Boolean} Boolean: True 圖 12-3 邏輯運算子的運算範例 Not a > b - c = Not 1 > 2-3 = Not 1 > -1 = Not True = False a < b Or b > a And c < b = 1 < 2 Or 2 > 1 And 3 < 2 = True Or True And False = True Or False = True 302

第 12 章 條件判斷敘述 單元 3 1. 下列 Visual Basic 運算式, 何者為真 (True)? (A)"abcd" > "string" (B)( 2 > 9 ) Or ( 3 < 8 ) (C)(( 9 Mod 4 ) > 2 ) And ( 8 < 3 ) (D)Not (( 1 <> 2 ) Or (5 = 4)) 2. 在 Visual Basic 中, 若 A = False : B = True : C = True, 則執行下列程式碼後, 何者所得結果為 True? (A)MsgBox(Not A Or B And Not C) (B)MsgBox(A And B Or Not C) (C)MsgBox(Not A And Not B Or Not C) (D)MsgBox(A Or B And Not C) 3. 當運算式中同時含有算術運算子 邏輯運算子和比較運算子時, 其運算的優先順序依序為 : > > 12-2 If 敘述 If 敘述可分為 If Then 敘述及 If Then 敘述 2 種 說明如下 12-2.1 If Then 敘述 If Then 敘述可分為 單行式 及 區塊式 兩種 單行式 If Then 敘述 適用於當條件式判斷的結果為真時, 只需執行一行程式敘述使用 ; 區塊式 If Then 敘述 適用於當條件式判斷的結果為真時, 需執行多行程式敘述使用 以下介紹 If Then 敘述的執行流程 語法及範例練習 一 執行流程 : 如果條件式判斷的結果為真, 就執行程式區塊, 否則就執行下一行敘述, 如圖 12-4 所示 If 條件式 假 (F) 真 (T) 程式區塊代表至少含有一行敘述 程式區塊 下一行敘述 圖 12-4 If Then 敘述的流程圖 303

計算機概論 二 語法 : 語法 & 舉例單行式敘述 If 條件式 Then 敘述 If age < 18 Then MsgBox(" 未成年 ") ( 內文範例 "ch12-1a.sln") 區塊式敘述 If 條件式 Then 程式區塊 If age < 18 Then MsgBox(" 未成年 ") End ' 結束程式 ( 內文範例 "ch12-1b.sln") age < 18 T 顯示 " 未成年 " F 結束程式 下一行敘述 說明 1 條件式判斷的結果為真, 才執行程式區塊 2 區塊式 If Then 敘述必須與 成對使用 圖解 2 成對使用 If 條件式 Then 程式區塊 1 為真時執行 304

第 12 章 條件判斷敘述 單元 3 三 範例 : 1. 判斷成績是否及格 程式碼 內文範例 "ch12-2.sln" score = 86 If score >= 60 Then MsgBox(" 及格 ") 執行結果 2. 取某數的絕對值 程式碼 內文範例 "ch12-3.sln" num = InputBox(" 請輸入任意數值 ") If num < 0 Then num = -num MsgBox(num) 執行結果 3. 計算年齡 ( 假設今年為 2012 年 ) 程式碼 內文範例 "ch12-4.sln" born = InputBox( " 請輸入出生年份, 如 1995") If born >= 1911 Then age = 2012 - born MsgBox(" 您今年 " & age & " 歲 ") 執行結果 305

計算機概論 自動內縮功能 程式語言中的某些敘述 ( 如 If 敘述 ), 須在開頭 ( 如 If) 及結尾 ( 如 ) 處使用特定的關鍵字將其中的程式敘述包圍起來 Visual Basic 2010 提供的自動內縮功能, 會將被包圍起來的程式敘述內縮 ( 圖 12-5), 使程式的可讀性提高, 以便於維護 If M <= 3 Then M = M + 3 * 6-9 MsgBox(M) If L <> 5 Then L = M + 3 * L MsgBox(L) 未內縮, 程式不易閱讀 自動內縮 If M <= 3 Then M = M + 3 * 6-9 MsgBox(M) If L <> 5 Then L = M + 3 * L MsgBox(L) 圖 12-5 程式敘述自動內縮的範例 1 練習使用 If Then 敘述 開啟新檔, 依照下列步驟撰寫 判斷成績是否合理 的程式, 最後將專案與方案以檔名 "Ans12-p1" 儲存 1 按新增專案鈕, 建立一個 Windows Form 應用程式類型的專案 2 按檢視程式碼鈕, 開啟程式碼視窗 3 1 4 2 3 按此下拉式方塊, 選 (Form1 事件 ) 4 按此下拉式方塊, 選 Load, 設定表單被載入時執行此事件程序 306

第 12 章 條件判斷敘述 單元 3 6 5 參照右圖, 輸入程式碼 6 按開始偵錯鈕, 執行程式 5 7 在請輸入成績 : 欄, 輸入 "102", 按確定, 以判斷輸入的成績是否合理 7 9 8 在跳出的警告交談窗中, 按確定鈕 9 按停止偵錯鈕, 結束程式的執行 8 12-2.2 If Then 敘述 當條件式判斷的結果為真或假, 分別需要執行對應的程式區塊時, 我們通常會使用 If Then 敘述來做條件判斷處理 以下介紹 If Then 敘述的執行流程 說明及範例練習 一 執行流程 : 如果條件式判斷的結果為真, 就執行程式區塊 1, 否則 ( 即條件式判斷的結果為假時 ) 就執行程式區塊 2, 如圖 12-6 所示 F If 條件式 T 程式區塊 1 程式區塊 2 下一行敘述圖 12-6 If Then 敘述的流程圖 307

計算機概論 二 語法 : 語法 & 舉例 判斷成績是否及格 If 條件式 Then 程式區塊 程式區塊 If S >= 60 Then MsgBox(" 及格 ") MsgBox(" 不及格 ") ( 內文範例 "ch12-5.sln") S >= 60 T 顯示 " 及格 " F 顯示 " 不及格 " 下一行敘述 說明 1 條件式判斷的結果為真, 執行 Then 之後的程式區塊 ; 否則執行 之後的程式區塊 2 If Then 必須與 一起使用 圖解 If 條件式 Then 2 一起使用 程式區塊 程式區塊 1 條件式為真時執行 1 條件式為假時執行 308

第 12 章 條件判斷敘述 單元 3 三 範例 : 1. 計算 2 數之差 程式碼 內文範例 "ch12-6.sln" a = 10 b = 12 If a > b Then MsgBox(a - b) MsgBox(b - a) 執行結果 2. 判斷是否成年 程式碼 內文範例 "ch12-7.sln" Y = InputBox(" 請輸入年齡 :") If Y >= 18 Then MsgBox(" 已成年 ") MsgBox(" 未成年 ") 執行結果 3. 依 BMI 值判斷身材是否標準 程式碼 內文範例 "ch12-8.sln" H = InputBox(" 請輸入身高 ( 公尺 ):") W = InputBox(" 請輸入體重 ( 公斤 ):") BMI = W / (H ^ 2) If BMI >= 21 And BMI <= 24 Then MsgBox("BMI 值為 " & BMI & ", 體重標準 ") MsgBox("BMI 值為 " & BMI & ", 體重不標準 ") 執行結果 309

計算機概論 巢狀 If 敘述 如果 If 敘述中含有 If 敘述, 就稱為巢狀 If 敘述 ( 圖 12-7) 在使用巢狀 If 敘述時, 要注意每一層的 If Then 必須與 成對使用, 不能交錯 語法 & 舉例 由分數判斷成績等第 If 條件式 1 Then If 條件式 2 Then 程式區塊 A 程式區塊 B 程式區塊 C If grade >= 60 Then If grade >= 85 Then MsgBox(" 甲 ") MsgBox(" 乙 ") MsgBox(" 丙 ") ( 內文範例 "ch12-9.sln") 圖 12-7 巢狀 If 敘述的使用範例 2 練習使用 If Then 敘述 開啟新檔, 依照下列步驟撰寫 判斷大小月 的程式, 最後將專案與方案以檔名 "Ans12-p2" 儲存 1 按新增專案鈕, 建立一個 Windows Form 應用程式類型的專案 2 按檢視程式碼鈕, 開啟程式碼視窗 3 按此下拉式方塊, 選 (Form1 事件 ) 1 6 2 4 按此下拉式方塊, 選 Load, 設定表單被載入時執行此事件程序 5 參照右圖, 輸入程式碼 3 5 4 6 按開始偵錯鈕, 執行程式 310

第 12 章 條件判斷敘述 單元 3 7 按是或否鈕, 程式會依照使用者按的按鈕, 來顯示對應的訊息交談窗 8 按停止偵錯鈕, 結束程式的執行 7 12-2.3 If Then If 敘述 If Then If 敘述是用來處理多重選擇的巢狀條件判斷敘述, 可一次設定多個不同的條件, 取代巢狀 If 敘述, 節省 的使用次數 ( 圖 12-8) 以下介紹 If Then If 敘述的執行流程 語法及範例練習 If M <= 3 Then MsgBox(" 春天 ") If M <= 6 Then MsgBox(" 夏天 ") If M <= 9 Then MsgBox(" 秋天 ") MsgBox(" 冬天 ") = If M <= 3 Then MsgBox(" 春天 ") If M <= 6 Then MsgBox(" 夏天 ") If M <= 9 Then MsgBox(" 秋天 ") MsgBox(" 冬天 ") 較簡潔 使用 If Then 敘述 圖 12-8 使用 If Then 與 If Then If 敘述的比較 使用 If Then If 敘述 ( 內文範例 "ch12-10a.sln" "ch12-10b.sln") 311

計算機概論 一 執行流程 : 如果條件式 1 判斷的結果為真, 就執行程式區塊 1; 否則若條件式 2 判斷的結果為真, 就執行程式區塊 2, 以此類推, 若條件式判斷的結果都為假, 則執行程式區塊 N+1, 如圖 12-9 所示 If 條件式 1 F T If 條件式 2 F T If 條件式 N F T 程式區塊 1 程式區塊 2 程式區塊 N 程式區塊 N+1 下一行敘述 圖 12-9 If Then If 敘述的流程圖 二 語法 : 語法 & 舉例 以體重區分跆拳道量級 ( 男子組 ) If 條件式 1 Then 程式區塊 1 If 條件式 2 Then 程式區塊 2 If 條件式 N Then 程式區塊 N 程式區塊 N+1 312 If kg <= 58 Then MsgBox(" 第一量級 ") If kg <= 68 Then MsgBox(" 第二量級 ") If kg <= 80 Then MsgBox(" 第三量級 ") MsgBox(" 第四量級 ") ( 內文範例 "ch12-11.sln")

第 12 章 條件判斷敘述 單元 3 kg <= 58 F T kg <= 68 F T kg <= 80 T F 顯示 " 第一量級 " 顯示 " 第二量級 " 顯示 " 第三量級 " 顯示 " 第四量級 " 下一行敘述 說明 1 依序判斷條件式, 若有多個條件式判斷的結果都為真, 只執行第 1 個為真的程式區塊 2 如果條件式判斷的結果都為假, 執行 後的程式區塊 3 及其後的程式區塊 N+1, 可視情況省略 圖解 If 條件式 1 Then 程式區塊 1 If 條件式 2 Then 1 依序判斷條件式, 只執行第 1 個為真的程式區塊 程式區塊 2 If 條件式 N Then 程式區塊 N 程式區塊 N+1 2 所有條件式皆為假時執行 3 可省略 313

計算機概論 三 範例 : 1. 依年齡判斷可觀賞的影片等級 程式碼 內文範例 "ch12-12.sln" age = 17 If age < 6 Then MsgBox(" 可看普遍級 ") If age < 12 Then MsgBox(" 可看普遍級 保護級 ") If age < 18 Then MsgBox(" 可看非限制級的影片 ") MsgBox(" 可看各級影片 ") 執行結果 2. 依消費金額 ( 變數 p) 多寡給予不同折扣 程式碼 內文範例 "ch12-13.sln" p = 7000 If p >= 1000 And p < 5000 Then p *= 0.95 If p >= 5000 And p <= 8000 Then p *= 0.9 If p > 8000 Then p *= 0.85 MsgBox(p) 執行結果 註 3. 判斷西元年份是否為閏年 程式碼 內文範例 "ch12-14.sln" Y = InputBox(" 請輸入西元年份 :") If Y Mod 400 = 0 Then MsgBox(" 西元 " & Y & " 年為閏年 ") If Y Mod 4 = 0 And Y Mod 100 <> 0 Then MsgBox(" 西元 " & Y & " 年為閏年 ") MsgBox(" 西元 " & Y & " 年為平年 ") 執行結果 314 註判斷閏年的規則 : 若某年 ( 西元年 ) 可被 400 整除即為閏年, 或者能被 4 整除但不能被 100 整除也是閏年, 其餘則為平年

第 12 章 條件判斷敘述 單元 3 3 練習使用 If Then If 敘述 開啟新檔, 依照下列步驟撰寫 找出 3 個數值中的最小值 的程式, 最後將專案與方案以檔名 "Ans12-p3" 儲存 2 1 按新增專案鈕, 建立一個 Windows Form 應用程式類型的專案 2 按檢視程式碼鈕, 開啟程式碼 視窗 3 按此下拉式方塊, 選 (Form1 事件 ) 4 按此下拉式方塊, 選 Load, 設定表單被載入時執行此事件程序 5 參照右圖, 輸入程式碼 6 按開始偵錯鈕 執行程式, 顯示 執行結果 7 按停止偵錯鈕, 結束程式的執 行 (Form1 事件 ) 3 Load 4 Public Class Form1 Private Sub Form1_Load(ByVal sender As O Dim x, y, z As Integer x = 22 : y = 83 : z = 19 If x < y And x < z Then MsgBox(" 最小值為 x, 值為 " & x) 5 If y < x And y < z Then MsgBox(" 最小值為 y, 值為 " & y) MsgBox(" 最小值為 z, 值為 " & z) End Sub 6 End Class 1. 執行下列 Visual Basic 程式片段後,AA 的值為何? (A)5 (B)10 (C)50 (D)2 AA = 5 BB = 10 If AA < BB Then AA = BB MsgBox(AA) 2. 執行下列 Visual Basic 程式片段後, 訊息交談窗依序顯示的結果為何? (A)4 (B)3 4 (C)5 4 (D)3 5 4 A = 3 B = 5 C = 4 If A > B Then If B > C Then MsgBox(A) MsgBox(B) MsgBox(C) 接下頁... 315

計算機概論 3. 下列為找出 x y z 三數中最小值的程式敘述, 試問空格處應填入哪一個條件式, 才能找出最小值? 1 min <> z 2 min > z 3 x <> y 4 min Or x If x > y Then min = y min = x If Then min = z MsgBox(min) 12-3 Select Case 敘述 Select Case 敘述與 If Then If 敘述相同, 皆是用來處理多重選擇的條件判斷敘述 在處理多重選擇問題, 使用 Select Case 敘述較使用 If Then If 敘述更為簡潔 ( 圖 12-10) 以下介紹 Select Case 敘述的執行流程 語法及範例練習 較簡潔 If g >= 90 And g <= 100 Then MsgBox(" 優 ") If g >= 80 And g <= 89 Then MsgBox(" 甲 ") If g >= 70 And g <= 79 Then MsgBox(" 乙 ") If g >= 60 And g <= 69 Then MsgBox(" 丙 ") MsgBox(" 丁 ") = Select Case grade Case 90 To 100 MsgBox(" 優 ") Case 80 To 89 MsgBox(" 甲 ") Case 70 To 79 MsgBox(" 乙 ") Case 60 To 69 MsgBox(" 丙 ") Case MsgBox(" 丁 ") 使用 If Then If 敘述 圖 12-10 使用 If Then If 與 Select Case 敘述的比較 使用 Select Case 敘述 ( 內文範例 "ch12-15a.sln" "ch12-15b.sln") 316

第 12 章 條件判斷敘述 單元 3 一 執行流程 : 如果條件式 1 判斷的結果為真, 就執行程式區塊 1; 否則若條件式 2 判斷的結果為真, 就執行程式區塊 2, 以此類推, 若條件式判斷的結果都為假, 則執行程式區塊 N+1, 如圖 12-11 所示 Select Case 條件式 Case 1 Case 2 Case N Case 程式區塊 1 程式區塊 2 程式區塊 N 程式區塊 N+1 下一行敘述 圖 12-11 Select Case 敘述的流程圖 二 語法 : 語法 & 舉例 依血型判斷性格特質 Select Case 資料或運算式 Case 條件式 1 程式區塊 1 Case 條件式 2 程式區塊 2 Case 條件式 N 程式區塊 N Case 程式區塊 N+1 317

計算機概論 Select Case blood_type Case "A" MsgBox(" 謹慎細心 ") Case "B" MsgBox(" 不拘小節 ") Case "O" MsgBox(" 樂天開朗 ") Case "AB" MsgBox(" 機靈聰慧 ") Case MsgBox(" 沒有這種血型!") ( 內文範例 "ch12-16.sln") Select Case Case "A" Case "B" Case "O" Case "AB" Case 顯示 " 謹慎細心 " 顯示 " 不拘小節 " 顯示 " 樂天開朗 " 顯示 " 機靈聰慧 " 顯示 " 沒有這種血型!" 下一行敘述 說明 1 Case 敘述中的條件式, 有以下 3 種表示方式 (n m 各代表一個數值 ): 語法 數值或字串 Case 數值 ( 或字串 ) 範例 Case 1 Case 2, 3, 4 Case "A", "B" 指定範圍 關係運算子 Case n To m Case Is 關係運算子 n Case 0 To 5 Case 10 To 20 Case Is > 2 Case Is <= 10 318

第 12 章 條件判斷敘述 單元 3 2 條件式中若使用逗號, 表示 或 的意思, 例如 Case 2, 5 To 10 表示 "2 或 5 10" 3 依序判斷條件式, 若有多個條件式判斷的結果都為真, 只執行第 1 個為真的程式區塊 4 如果條件式判斷的結果都為假, 執行 Case 後的程式區塊 5 Case 及其後的程式區塊可視情況省略 6 Select Case 必須與 成對使用 圖解 1 3 種表示方式 Case 數值 ( 或字串 ) Case n To m Case Is 關係運算子 n Select Case 資料或運算式 Case 條件式 1 程式區塊 1 2 條件式中逗號表示 或 Case 條件式 2 3 依序判斷條件式, 只執行第 1 個為真的程式區塊 6 成對使用 程式區塊 2 Case 條件式 N 程式區塊 N Case 程式區塊 N+1 4 所有條件式皆為假時執行 5 可省略 319

計算機概論 三 範例 : 1. 判斷成績等級 程式碼 內文範例 "ch12-17.sln" grade = 82 Select Case grade Case Is >= 90 MsgBox(" 優 ") Case Is >= 80 MsgBox(" 甲 ") Case Is >= 70 MsgBox(" 乙 ") Case Is >= 60 MsgBox(" 丙 ") Case MsgBox(" 丁 ") 執行結果 程式碼 內文範例 "ch12-18.sln" grade = 82 Select Case grade Case Is >= 60 MsgBox(" 丙 ") Case Is >= 70 MsgBox(" 乙 ") Case Is >= 80 MsgBox(" 甲 ") Case Is >= 90 MsgBox(" 優 ") Case MsgBox(" 丁 ") 執行結果 320 在 Select Case 敘述中, 當有多個條件式判斷的結果都為真時, 只執行第 1 個為真的程式敘述區塊, 因此撰寫 Select Case 時, 應特別注意條件式的設定順序是否正確 例如在上述 2 個範例中, 第 2 個範例的條件式設定順序, 就會導致程式執行的結果錯誤

第 12 章 條件判斷敘述 單元 3 2. 判斷颱風級數 程式碼 內文範例 "ch12-19.sln" T = InputBox(" 請輸入颱風的級數 :") Select Case T Case 8, 9, 10, 11 MsgBox(" 輕度颱風 ") Case 12 To 15 MsgBox(" 中度颱風 ") Case Is >= 16 MsgBox(" 強烈颱風 ") Case MsgBox(" 不在範圍內 ") 執行結果 利用 ":" 縮減程式的行數 在 Visual Basic 中, 若要設定多個變數的初始值時, 可利用 ":" 將多行程式敘述撰寫在同一行中, 以縮減程式的行數 ( 圖 12-12) X = 2 Y = 4 Select Case Y - X Case 0 X = X * 0.6 Case 1 X = X * 0.7 Case 2 X = X * 0.8 Case X = X * 0.9 將 2 行程式敘述縮減成 1 行 X = 2 : Y = 4 Select Case Y - X Case 0 X = X * 0.6 Case 1 X = X * 0.7 Case 2 X = X * 0.8 Case X = X * 0.9 圖 12-12 利用 ":" 縮減程式行數 321

計算機概論 4 練習使用 Select Case 敘述 開啟新檔, 依照下列步驟撰寫 依消費金額多寡給予不同折扣 的程式, 最後將專案與方案以檔名 "Ans12-p4" 儲存 2 1 按新增專案鈕, 建立一個 Windows Form 應用程式類型的專案 2 按檢視程式碼鈕, 開啟程式 碼視窗 3 按此下拉式方塊, 選 (Form1 事件 ) 4 按此下拉式方塊, 選 Load, 設定表單被載入時執行此事件程序 5 參照右圖, 輸入程式碼 6 按開始偵錯鈕 執行程式, 以 顯示執行結果 7 按停止偵錯鈕, 結束程式的 執行 (Form1 事件 ) Load Public 3 Class Form1 4 Private Sub Form1_Load(ByVal sender As O Dim price As Integer = 7000 Select Case price Case 1000 To 4999 price *= 0.95 5 Case 5000 To 8000 price *= 0.9 Case Is > 8000 price *= 0.85 MsgBox(" 折扣後的金額為 " & price) End Sub 6 End Class 322 1. 在 Visual Basic 程式語言中, 下列何種指令最適合用於多重選擇結構中? (A)Do Loop (B)For Next (C) 單行式 If Then (D)Select Case 2. 執行右方 Visual Basic 程式片段後,s 的值為何? (A)a (B)b (C)c (D)abc 3. 請依據下列 Case 敘述的條件式, 在空白處填入正確的表示方式 : 條件式敘述 (1) 當變數為 "C" 時 Case (2) 當變數範圍為 5 13 時 Case (3) 當變數不等於 7 時 Case 程式碼 Dim i As Integer = 20 Dim s As String Select Case i Case Is > 10 s = "a" Case 10 To 20 s = "b" Case 20 s = "c"

第 12 章 條件判斷敘述 單元 3 本範例將以撰寫一個 計算 BMI 值 的程式為例, 讓同學練習 If Then If 敘述的語法 1. 建立新專案 2. 編寫程式碼 3. 測試程式 4. 儲存專案 5 計算 BMI 值 1.1 1.2 1. 建立新專案 詳細步驟參考 1.1 啟動 Visual Basic 2010 1.3 1.2 按新增專案鈕, 開啟新增專案交談窗 1.3 選 Windows Form 應用程式, 按確定鈕, 開啟新專案 323

計算機概論 2. 編寫程式碼 詳細步驟參考 2.1 按檢視程式碼鈕, 開啟 2.2 2.3 2.1 程式碼視窗 2.2 按此下拉式方塊, 選 (Form1 事件 ) 2.3 按此下拉式方塊, 選 Load, 設定表單被載入時執行此事件程序 2.4 參照下表, 輸入程式碼 列號 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 程式碼 Dim h, w, BMI As Single Dim gender As Short gender = InputBox(" 輸入性別 ( 男 = 1; 女 = 2):") h = InputBox(" 輸入身高 ( 公分 ):") w = InputBox(" 輸入體重 ( 公斤 ):") BMI = w / ((h / 100) ^ 2) If gender = 1 Then If BMI >= 18.5 And BMI <= 27.8 Then MsgBox(" 你的 BMI 值 = " & BMI & ", 正常 ") MsgBox(" 你的 BMI 值 = " & BMI & ", 不正常 ") If gender = 2 Then If BMI >= 18.5 And BMI <= 27.3 Then MsgBox(" 妳的 BMI 值 = " & BMI & ", 正常 ") MsgBox(" 妳的 BMI 值 = " & BMI & ", 不正常 ") MsgBox(" 性別代號輸入錯誤, 無法判斷 ") End ' 結束程式 計算 BMI 值的公式判斷男性 BMI 值是否正常 ( 正常範圍 :18.5 27.8) 判斷女性 BMI 值是否正常 ( 正常範圍 :18.5 27.3) 324

第 12 章 條件判斷敘述 單元 3 3.1 3. 測試程式 詳細步驟參考 3.1 按開始偵錯鈕, 執行程式 3.2 在此欄輸入性別 ( 如 2), 按確定鈕 3.3 在此欄輸入自己的身高 ( 如 165), 按確定鈕 3.2 3.3 3.4 在此欄輸入自己的體重 ( 如 53), 按確定鈕 3.4 3.5 3.5 檢視自己的 BMI 值後, 按確定鈕, 結束程式的執行 4. 儲存專案 4.1 詳細步驟參考 4.1 按全部儲存鈕, 開啟儲存專案交談窗 4.2 勾選為方案建立目錄核取方塊, 設定要建立一個資料夾, 用來存放與方案相關的檔案 4.4 4.3 4.3 按瀏覽鈕, 選取要存放專案的位置 4.2 4.4 在名稱欄, 輸入 "Ans12-1", 按儲存鈕 325

MENU 選擇題 作答處藍色底線表示該題為歷屆考題 ; 紅色底線為技能檢定考題 1. 下列 Visual Basic 運算子, 何者的運算及執行順序最優先? (A) 整數除法 \ (B)Not (C)Or (D) 減號 - 2. 執行下列 Visual Basic 程式片段後,X 的值為何? (A)False (B)Not (C)Or (D)True Dim X As Boolean X = Not False And True Or False Or True 3. 若邏輯運算式 :Not (A Or B), 執行結果得出值為 True, 則 A 與 B 的值, 應該是多少? (A)A = False B = False (B)A = False B = True (C)A = True B = False (D)A = True B = True 4. 下列 Visual Basic 程式語言的邏輯運算中, 何者的邏輯值為 True? (A)(3 < 5) XOR (20.3 MOD 2.7) > 2 (B)"123" + "456" = "579" (C)5 / 4 < 5 \ 4 (D)NOT 3 + 2 <= 5 5. 若 A = -1 : B = 0 : C=1, 則下列邏輯運算的結果, 何者為真? (A)A > B And C > B (B)A < B Or C < B (C)(B - C) = (B - A) (D)(A - B) <> (B - C) 6. If Then 為下列何種結構? (A) 循序結構 (B) 條件判斷結構 (C) 重複結構 (D) 樹狀結構 7. 在 Visual Basic 中, 若 A=1 B=2, 則執行敘述 If A < B Then A += B 後, 何者正確? (A)A = 3 (B)A = 2 (C)B = 1 (D)B = 3 8. 下列生活實例的敘述中, 何者最不適合使用條件判斷敘述? (A) 販賣機依據消費者投入的金額, 顯示符合該金額的多種飲料 (B) 新光三越推出紅利積點活動, 依據消費者購物的金額, 給予相對的紅利點數 (C) 購買高鐵車票, 售票系統會依據路程長度顯示票價 (D) 電腦系統隨機挑選 17,500 個名額, 決定哪些歌迷可參加麥可追思會 9. 執行程式 ( 一 ) 後,Weight 的值為何? (A)54 (B)56 (C)60 (D)63 10. 執行程式 ( 二 ) 後, 出現訊息交談窗時, 若按取消鈕, 則輸出結果為何? (A)Yes (B)No (C)YES,NO (D) 空值 Sex = "F" Height = 170 If Sex = "M" then Weight = (Height - 80) * 0.7 Weight = (Height - 70) * 0.6 y = MsgBox(" 確認送出 ", 1) If y = 1 Then MsgBox("Yes") MsgBox("No") 326 程式 ( 一 ) 程式 ( 二 )

11. 執行程式 ( 三 ) 後, 會產生哪一種錯誤的訊息? (A) 沒有定義變數的初始值 (B) 運算公式錯誤 (C)If 條件式中不能使用比較運算子 (D) 有 If, 卻沒有 12. 執行程式 ( 四 ) 後, 訊息交談窗顯示的結果為何? (A)4 (B)6 (C)A (D)B Dim a, b As Integer If a > 5 Then a = a + 3 If b > 5 Then a = a - 5 If ( 6 > 5 Or 4 > 5 ) Then MsgBox("A") MsgBox("B") 程式 ( 三 ) 程式 ( 四 ) 13. 執行程式 ( 五 ) 後,Y 值為何? (A)1 (B)2 (C)3 (D)110 14. 執行程式 ( 六 ) 後, 何者正確? (A)a = 6 (B)a = 7 (C)b = 11 (D)b = 12 15. 執行程式 ( 七 ) 後, 訊息交談窗顯示的結果為何? (A)ma (B)mb (C)fa (D)mafa X = 110 If X < 100 Then Y = 1 Y = 2 If X > 120 Then Y = 3 a = 5 b = 10 If a Mod 2 = 0 Then a = a + 1 If b Mod 2 = 0 Then b = b + 2 a = a + 2 b = b + 1 X = 1 : Y = 150 Z = 56.25 B = Z / (Y / 100) ^ 2 If (X Mod 2 <> 0) Then If B < 26 Then MsgBox("ma") MsgBox("mb") If B < 24 Then MsgBox("fa") 程式 ( 五 ) 程式 ( 六 ) 程式 ( 七 ) 16. 執行程式 ( 八 ) 後, 總共輸出幾個 $? (A)1 (B)2 (C)3 (D)6 17. 執行程式 ( 九 ) 後, 訊息交談窗顯示的結果為何? (A)error (B)l (C)m (D)s X = 3 \ 2 Select Case X Case 1 : Debug.Print("$") Case 2 : Debug.Print("$$") Case : Debug.Print("$$$") Select Case 5 Mod 2 Case 1 MsgBox("s") Case 2 MsgBox("m") Case MsgBox("l") 程式 ( 八 ) 程式 ( 九 ) 327

MENU 18. 在 Visual Basic 程式 Select Case 的結構中, 若 Case 條件要判斷多個資料時, 以下哪種表示法有誤? (A)Case 1, 2, 3 To 5 (B)Case Is < 10, 11 To 15 (C)Case Is < 10 Or > 20 (D)Case 2, 4, 6, 8, 10 19. 執行程式 ( 十 ) 後, 出現提示符號時輸入數值 3, 則 Y 值為何? (A)3 (B)-3 (C)9 (D)27 20. 執行程式 ( 十一 ) 後, 訊息交談窗顯示的結果為何? (A)A (B)B (C)C (D)ABC x = InputBox(" 請輸入任一整數 ") Select Case x Case 1, 3 y = x * x Case Is >= 10, Is <= 0 y = x Case 3 y = x N = 6 Select Case(N) Case 1 MsgBox("A") Case 2 MsgBox("B") Case MsgBox("C") 程式 ( 十 ) 程式 ( 十一 ) 實作題 1. 請利用巢狀 If 敘述, 寫出一個依照郵件重量計算運費的程式, 並儲存專案為 "Ans12-a.sln" 運費計算方法如右表 郵件重量 運費 0 5 kg 100 6 10 kg 150 11 15 kg 200 16 kg 以上 300 2. 利用 2 個 Label( 標籤 ) 2 個 TextBox( 文字方塊 ) 及 2 個 Button( 按鈕 ) 來設計一個檢查使用者登入資料的視窗, 並儲存專案為 "Ans12-b.sln" 帳號密碼正確 帳號密碼錯誤 328 提示 : (1) 建立新專案, 參考上圖在 Form1 佈建控制項 (2) 將用來輸入密碼的 TextBox 控制項屬性 UseSystemPasswordChar 設定為 True, 以 "*" 顯示密碼 (3) 自行設定一組帳號及密碼, 例如 :id = "jack",pw = "luck007" (4) 在登入鈕的 Click 事件撰寫程式碼, 判斷使用者輸入的帳號及密碼是否正確 若正確, 出現歡迎登入訊息 ; 若錯誤, 出現重新輸入訊息 (5) 在離開鈕的 Click 事件輸入 "End", 設定按下離開鈕, 即結束程式