第5章 決策敘述 if if…else switch…case 綜合範例

Slides:



Advertisements
Similar presentations
第一單元 建立java 程式.
Advertisements

第4章 條件判斷與迴圈 Java 2 程式設計入門與應用.
第四章 選擇結構.
第 3 章 方程與圖像.
第四章 決策敘述 4-1 if 4-2 if..else 4-3 case 4-4 綜合範例.
3-2 條件不等式 解一元 n 次不等式 二元一次不等式的圖解法 函數的極植.
迴圈 迴圈基本觀念 while迴圈 do 迴圈 for迴圈 巢狀迴圈 迴圈設計注意事項 其他控制指令 迴圈與選擇的組合.
JAVA 程式設計 資訊管理系 - 網路組.
P303 HTML/DHTML/CSS/JavaScript 專業HTML網頁設計 陳錦輝.
第 5 章 流程控制 (一): 條件分支.
TQC+ JAVA全國教師研習會 PLWeb 程式設計練習平台 簡介.
資料結構使用Java 第1章 資料結構與Java程式複習.
選擇 運算式 邏輯運算 if指令 流程圖基本觀念 程式註解 巢狀if指令 switch指令.
Chapter 5 迴圈.
Class 2 流程控制-選擇敘述與迴圈.
9/28號專題報告 Web網頁遊戲 曾建瑋.
C++Primer 3rd edition 中文版 Chap 5
2-3 基本數位邏輯處理※.
流程控制結構 4-1 流程控制與UML活動圖 4-2 程式區塊與主控台基本輸入 4-3 條件控制敘述 4-4 迴圈控制敘述 4-5 巢狀迴圈
第四章 流程控制(一) if,if-else 與 switch
保留字與識別字.
流程控制 大綱 傳遞參數給main()方法 流程控制的用途與種類 if判斷敘述 switch 判斷敘述.
C語言簡介 日期 : 2018/12/2.
PHP 程式流程控制結構.
實作輔導 3 日期: 4/14(星期六) 09:10~12:00、13:10~16:00
Introduction to the C Programming Language
邏輯關係運算 == 等於 & 且 (logical and) ~= 不等於 | 或 (logical or) < 小於
Instructor:Po-Yu Kuo 教師:郭柏佑
第一單元 建立java 程式.
分支宣告與程式設計 黃聰明 國立臺灣師範大學數學系
選擇性結構 if-else… switch-case 重複性結構 while… do-while… for…
義守大學電機工程學系 陳慶瀚 第4章 VHDL Sequential語法 義守大學電機工程學系 陳慶瀚
软件测试 (四)静态测试与动态测试.
JAVA 程式設計 資訊管理系 - 網路組.
Introduction to C Programming
語法:結構 實作:Analog in (VR、光敏+七段顯示電壓) 簡報:廖崇義
第一次Labview就上手 參考書籍: LabVIEW for Everyone (Jeffrey Travis/Jim Kring)
CH05. 選擇敘述.
期末考.
大綱:加減法的化簡 乘除法的化簡 去括號法則 蘇奕君 台灣數位學習科技股份有限公司
挑戰C++程式語言 ──第8章 進一步談字元與字串
第二章 Java基本语法 讲师:复凡.
圓的定義 在平面上,與一定點等距的所有點所形成的圖形稱為圓。定點稱為圓心,圓心至圓上任意一點的距離稱為半徑,「圓」指的是曲線部分的圖形,故圓心並不在圓上.
九年级 上册 22.3 实际问题与二次函数 (第1课时).
第二章 Java语法基础.
圖解配方法 張美玲老師製作.
流程控制:Switch-Case 94學年度第一學期‧資訊教育 東海大學物理系.
函數應用(二)與自定函數.
PHP程式設計 五、程式流程控制結構 建國科技大學 資訊管理學系 饒瑞佶.
選擇性結構 if-else… switch-case 重複性結構 while… do-while… for…
例題 1. 多項式的排列 1-2 多項式及其加減法 將多項式 按下列方式排列: (1) 降冪排列:______________________ (2) 升冪排列:______________________ 排列 降冪:次數由高至低 升冪;次數由低至高.
1-1 二元一次式運算.
第二章 Java基本语法 讲师:复凡.
第1章 数据结构基础概论 本章主要介绍以下内容 数据结构研究的主要内容 数据结构中涉及的基本概念 算法的概念、描述方法以及评价标准.
適用於多選一 可減少if 與 else配對混淆的錯誤.
多重條件選擇敘述
Programming & Language Telling the computer what to do
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
String類別 在C語言中提供兩種支援字串的方式 可以使用傳統以null結尾的字元陣列 使用string類別
Chapter 4 Multi-Threads (多執行緒).
解下列各一元二次方程式: (1)(x+1)2=81 x+1=9 或 x+1=-9 x=8 或 x=-10 (2)(x-5)2+3=0
第二章 Java基础语法 北京传智播客教育
C語言程式設計 老師:謝孟諺 助教:楊斯竣.
以下是一元一次方程式的有________________________________。
第二章 Java基本语法 讲师:复凡.
微 處 理 機 專 題 – 8051 C語言程式設計 主題:階乘計算
方法(Method) 函數.
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
InputStreamReader Console Scanner
Presentation transcript:

第5章 決策敘述 if if…else switch…case 綜合範例 第5章 決策敘述 人類的生活必須不斷面對決策問題,連我家一個不到三歲的小孩,也常要思考他手裡的十元是要坐電動車還是買棒棒糖。程式語言是協助解決人類問題的工具,當然也有決策敘述,Java依決策點的多寡,分為以下三種決策敘述,第一是單一分歧決策的If - Then,例如肚子餓了就吃飯;第二是雙向分歧決策If – Then - Else,例如肚子 餓了就吃飯,否則繼續前進;第三是多向分歧決策的Select Case,例如你身上5000元,走進一家五星級的大飯店用餐,你的分歧點就很多,有自助餐、中式套餐、日本料理、泰國餐點等等分歧點。本章的重點即是探討Java的決策敘述。 if if…else switch…case 綜合範例

5-1 if if通常用於單一分歧的決策,它的使用時機為“假如~則~”,也就是條件成立時,則執行某項工作,但若條件不成立時,則不予理會。其語法如下: if (運算式) { 敘述區塊; }

1. 若運算式的值為true則執行敘述區塊,運算式的值若為false,則不會被執行,其流程圖如下: 以上語法說明如下: 1. 若運算式的值為true則執行敘述區塊,運算式的值若為false,則不會被執行,其流程圖如下: 敘述區塊內的敘述若只有一個,則敘述區塊上下兩個大括號可予省略。例如,以下敘述可以判斷變數a是否等於0,若條件成立則輸出"Game Over"。 If(a==0) System.out.println(“Game Over “);

3、若敘述區塊上下的大括號遺漏,則條件成立時,Java僅執行敘述區塊的第一個敘述,但更嚴重的問題,敘述區塊第二個以後的敘述,不論條件成立與否,均含自動執行。例如,以下敘述執行之後,b=0,c=3。 if(a= =0) b=3; c=3; 4、敘述區塊內可以放置任何合法的敘述,當然也可以放置if,if中有if 稱為巢狀if。例如,以下敘述除可判斷a是否及格,更可判斷其是否優等。 If(a>=60) { b=”及格”; if (a>=90) c=”優等”; }

範例5-1a 請輸入一個成績,若此成績大於等於60分,則輸出“及格”。

範例 5_1B 請寫一程式,滿足以下條件。 1、 輸入兩個數。 2、 求輸入兩數最大值。 3、 輸出最大值。

5-2 if...else 上一節的if僅適合單一分歧的決策,當條件成立時,執行某一敘述;當條件未成立時,則未有任何處置。但在日常生活領域中,當出現“假如~則~,否則~”時,此種決策模式有兩種解決問題的方案,故稱為雙向分歧決策,此時可使用if...else敘述,if...else敘述的語法如下: if(運算式) { 敘述區塊1; } else 敘述區塊2;

以上語法說明如下: 1. 運算式的值若為true,則執行敘述區塊1;運算式的值若為false,則執行敘述區塊2,其流程圖如下: 2. 敘述區塊內可以放置任何合法敘述,當然也可以再放置if;if中有if,稱為巢狀if,請看範例5-2c。

3. 以下敘述可依a的大小評量其及格與否 if (a>=60) System.out.println(“及格”); else System.out.println(“不及格”); 4. Java為了強調語法的簡潔性,若決策的結果,只為求得簡單的運算式,則可用下式的三元運算子(?:),其中運算式2與運算式3的括號只是增加程式的可讀性,此兩括號的有無並不影響程式的執行結果。以下式子,當運算式1的值為true時,Z=運算式2,當運算式1的值為false時,則Z=運算式3。 Z=(運算式1)?(運算式2):(運算式3)  

範例5-2a 同上範例,但使用if  else。

5-2b 請使用三元運算子,重寫以上範例。

範例 5-2c 請寫一個程式,可以判斷所輸入座標的所在象限。

範例 5-2d 請寫一個程式,完成以下要求: 1. 輸入一個0~100的分數。 2. 當分數大於90分時,輸出A。 1. 輸入一個0~100的分數。 2. 當分數大於90分時,輸出A。 3. 當分數介於80~89時,輸出B。 4. 當分數介於70~79時,輸出C。 5. 當分數介於0~69時,輸出D。

5-3 switch...case 一個決策點若同時擁有三個或三個以上的解決方案,則稱此為多向分歧決策。多向分歧決策雖也可使用5-2c的巢狀if else解決,但卻增加程式的複雜度及降低程式可讀性,若此一決策點能找到適當的運算式,能使問題同時找到分歧點,則可使用switch case敘述。switch case語法如下: switch(運算式) { case常數1: 敘述區塊1; break; case常數2; 敘述區塊2; case常數3; 〔default:〕 敘述區塊n; }

以上語法說明如下: 1. switch的運算式值僅能為整數或字元。 2. case的常數僅能整數或字元,且其型別應與上面的switch運算式相同。 3. 電腦將會依switch的運算式值,逐一至常數1、常數2尋找合乎條件的case,並執行相對應的敘述區塊,直到遇到break敘述,才能離開switch。 4. default可放置特殊情況,其兩旁加中括號表示此敘述可省略;若省略default,且若沒有任何case滿足switch運算式,則程式會默默離開switch敘述。 5. 敘述區塊可放置任何合法的敘述,當然也可放置switch或if。

6. 以下敘述,可將1、2、3、4轉為對應的季節。 a=1; String b; //季節 switch(a); {  case 1: 6. 以下敘述,可將1、2、3、4轉為對應的季節。 a=1; String b; //季節 switch(a); {  case 1: b=”春”: break;  case 2: b=”夏”;  case 3: b=”秋”;  case 4: b=”冬”; }

範例5-3a 試以switch case重作範例5-2d。

5-4綜合範例

範例 5-4A 請設計一個程式,可以解一元二次方程式ax2 + bx + c = 0。

範例 5-4b 請設計一個程式,可以解二元一次方程式。

範例 5-4C 請輸入三角形三邊長,首先判斷是否構成三角形、其次判別三角形的種類,最後計算其面積。

範例5-4D 請寫一個程式,可以將使用者所輸入的西元年份,判斷其為平年或閏年。