4 條件選擇 4.1 程式基本結構 循序式結構 選擇式結構 重複式結構 4-3

Slides:



Advertisements
Similar presentations
1 第 3 章 C++ 中的条件与循环 第 3 次见面! acm.nefu.edu.cn/C++_03.ppt.
Advertisements

While 迴圈 - 不知重複執行次數
CSIM, PU C Language Introduction to the C Programming Language 重覆敘述 (for,while,break,continue) 適合重複性的計算或判斷.
第4章 條件判斷與迴圈 Java 2 程式設計入門與應用.
迴圈 迴圈基本觀念 while迴圈 do 迴圈 for迴圈 巢狀迴圈 迴圈設計注意事項 其他控制指令 迴圈與選擇的組合.
C#程序设计案例教程 第3章 程 序 结 构.
第一章 C语言概述 计算机公共教学部.
上課囉 職場甘苦談 小資男孩向錢衝 育碁數位科技 呂宗益/副理.
第 5 章 流程控制 (一): 條件分支.
選擇 運算式 邏輯運算 if指令 流程圖基本觀念 程式註解 巢狀if指令 switch指令.
C++程序设计 王希 图书馆三楼办公室.
第三章 控制结构.
程式設計實作.
2.1 基本資料型別 2.2 變數 2.3 運算式與運算子 2.4 輸出與輸入資料 2.5 資料型別轉換 2.6 實例
Class 2 流程控制-選擇敘述與迴圈.
資料大樓 --談指標與陣列 綠園.
函數(一) 自訂函數、遞迴函數 綠園.
C++Primer 3rd edition 中文版 Chap 5
C++中switch语句的BNF 否极泰来 ——《周易》.
If … else 選擇結構 P27.
C 程式設計— 控制敘述 台大資訊工程學系 資訊系統訓練班.
授课老师:龚涛 信息科学与技术学院 2018年3月 教材: 《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
2 C++ 的基本語法和使用環境 親自撰寫和執行程式是學好程式語言的不二法門。本章藉由兩個簡單的程式,介紹C++ 程式的基本結構和開發環境,讓初學者能逐漸建立使用C++ 的信心。
條件判斷指令 -if 指令 -switch 指令 迴圈指令 - for 迴圈 - while迴圈 - break、continue 指令
第三章 流程控制與例外處理 資訊教育研究室 製作 注意:本投影片僅供上課使用,非經同意,請勿散播或轉載。
计算机网络讲义 第5章 批量数据处理—数组 一维数组 排序和查找 二维数组 字符串.
Introduction to the C Programming Language
Chap 3 分支结构 3.1 简单的猜数游戏 3.2 四则运算 3.3 查询自动售货机中商品的价格.
第3讲 C++程序控制结构 3.1 顺序结构 3.2 分支结构 3.3 循环结构 3.4 转向控制 3.5 综合案例分析.
電腦解題─流程圖簡介 臺北市立大同高中 蔡志敏老師.
本章中將會更詳細地考慮有關重複的概念,並且會 介紹for和do…while等兩種用來控制重複的敘述 式。 也將會介紹switch多重選擇敘述式。 我們會討論直接和迅速離開某種控制敘述式的 break敘述式,以及用來跳過重複敘述式本體剩餘 部份的continue敘述式。 本章會討論用來組合控制條件的邏輯運算子,最後.
2019/1/17 Java语言程序设计-程序流程 教师:段鹏飞.
C++语言程序设计 第二章 C++简单程序设计.
程序的三种基本结构 if条件分支语句 switch多路开关语句 循环语句 循环嵌套 break,continue和goto语句
計數式重複敘述 for 迴圈 P
程式設計 老師:戴自強 助教:楊斯竣.
授课老师:龚涛 信息科学与技术学院 2016年3月 教材:《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
第2章 C++流程控制语句 if 语句 switch语句 for语句 while语句 do - while语句 break语句
第1章 概述 本章要点: C语言程序结构和特点 C语言程序的基本符号与关键字 C语言程序的编辑及运行 学习方法建议:
第4讲 C++程序控制结构(二) 4.1 循环结构 4.2 转向控制 4.3 综合案例分析.
第二章 词法分析4 词法分析程序实现 构造词法分析器步骤 单词的形式化描述 词法分析程序的实现.
C++大学基础教程 第3章 C++控制语句 北京科技大学 信息基础科学系.
第二章Java基本程序设计.
C语言概述 第一章.
第1讲 C语言基础 要求: (1) C程序的组成 (2) C语言的标识符是如何定义的。 (3) C语言有哪些基本数据类型?各种基本数
程式結構&語法.
第三章 C++的语句和简单的程序设计 主要内容:
1.2 C语言程序的结构与书写规则 一、 C语言程序的总体结构
第二章 Java基本语法 讲师:复凡.
浙江长征职业技术学院—计算机与信息技术系—相方莉制作
C++语言程序设计教程 第2章 数据类型与表达式 第2章 数据类型与表达式 制作人:杨进才 沈显君.
<编程达人入门课程> 本节内容 为什么要使用变量? 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ:
第三章 程序的控制结构 第一节 概述 第二节 if选择结构 第三节 switch语句.
第二章 Java语法基础.
#include <iostream.h>
第二章 Java基本语法 讲师:复凡.
第五章 逻辑运算和判断选取控制 §5.1 关系运算符和关系表达式
第1章 数据结构基础概论 本章主要介绍以下内容 数据结构研究的主要内容 数据结构中涉及的基本概念 算法的概念、描述方法以及评价标准.
《数据结构与算法设计》第一部分 面向对象的C++程序设计基础.
PPT注意事项: 当前PPT课件文件必须和提供的源代码文件夹“代码”在同一目录中即不要移动文件夹“代码”的默认位置。
變數、資料型態、運算子.
第2章 Java语言基础.
多重條件選擇敘述
C#快速導讀 流程控制.
判斷(選擇性敘述) if if else else if 條件運算子.
鄭士康 國立台灣大學 電機工程學系/電信工程研究所/ 資訊網路與多媒體研究所
變數與資料型態  綠園.
C语言基本语句 判断循环.
第三章 流程控制 程序的运行流程 选择结构语句 循环结构语句 主讲:李祥 时间:2015年10月.
第二章 Java基础语法 北京传智播客教育
Presentation transcript:

4 條件選擇 4.1 程式基本結構 4-2 4.1.1 循序式結構 4-2 4.1.2 選擇式結構 4-2 4.1.3 重複式結構 4-3 4 條件選擇 4.1 程式基本結構 4-2 4.1.1 循序式結構 4-2 4.1.2 選擇式結構 4-2 4.1.3 重複式結構 4-3 4.1.4 goto結構 4-4 4.2 條件選擇 4-5 4.2.1 關係運算符號 4-5 4.2.2 邏輯運算符號 4-9 4.2.3 if敘述 4-11 4.2.4 if-else敘述 4-15 4.2.5 if-else if敘述 4-20 4.2.6 巢狀if敘述 4-26 4.2.7 switch敘述 4-29 4.2.8 條件運算符號 4-35

4.1 程式基本結構 程式的基本結構可概分為循序式結構(sequence structure)、選擇式結構(selection structure)、與重複式結構(repetition structure)等三種,幾乎所有程式都是在循序式結構的基礎上,加上選擇式結構或重複式結構。

4.1.1 循序式結構 循序式結構(sequence structure)的程式是指程式依序從第一個敘述執行至最後一個敘述。 範例 4.1.1 循序式結構 循序式結構(sequence structure)的程式是指程式依序從第一個敘述執行至最後一個敘述。 範例 int main( ) { int Var = 5; //第1步 cout << "Var起始值 = " << Var; //第2步 Var = 10; //第3步 cout << "\nVar變更值 = " << Var; //第4步 return 0; }

4.1.2 選擇式結構 選擇式結構(selection structure)的程式是指程式含有條件敘述,當條件敘述的條件成立(也就是條件運算式的值為1)時,執行條件成立區的敘述。 反之,當條件敘述的條件不成立(也就是條件運算式的值為0)時,則結束條件選擇(是非結構)如下面範例一,或是執行條件不成立區的敘述(二選一結構)如下面範例二。

4.1.2 選擇式結構 (續) 是非結構 int main() { char inkey; //第1步 4.1.2 選擇式結構 (續) 是非結構 int main() { char inkey; //第1步 cout << "請按 Y 鍵,再按 Enter‧‧‧"; //第2步 cin >> inkey; //第3步 if(inkey == 'Y' || inkey == 'y') { //第4步 cout << "祝您一路順風!\n"; } return 0;

4.1.2 選擇式結構 (續) 二選一結構 int main( ) { char inkey; //第1步 4.1.2 選擇式結構 (續) 二選一結構 int main( ) { char inkey; //第1步 cout << "請按 Y 鍵,再按 Enter‧‧‧"; //第2步 cin >> inkey; //第3步 if(inkey == 'Y' || inkey == 'y') //第4步 cout << "祝您一路順風!\n"; //if運算值為1的第5步 else //否則 cout << “請勿酒後駕車!\n"; //if運算值為0的第5步 }

4.1.3 重複式結構 重複式結構(repetition structure)的程式是指程式含有重複敘述,當重複敘述的條件成立(也就是條件運算式的值為1)時,重複執行重複區的敘述。 反之,當重複敘述的條件不成立(也就是條件運算式的值為0)時,則結束重複結構。

4.1.3 重複式結構 (續)

4.1.4 goto結構 goto 標籤; . 標籤:

4.1.4 goto結構 (續) 標籤: . . goto 標籤;

4.2 條件選擇 在日常生活中,通常處理某些事情時都事先分析判斷再作決定。例如,今天要不要帶電腦課本,此時您會先想想今天有沒有電腦課,有電腦課則要帶電腦課本,沒有則不帶電腦課本。同理,在程式設計中,也經常使用條件敘述,協助判斷並決定程式流程。例如,是否要結束程式時,通常先判斷使用者的輸入,若使用者輸入 “y” 或 “Y” 則結束程式,若使用者輸入 “n” 或 “N” 則不結束程式。

4.2.1 關係運算符號 符號 功能 範例 說明 > 大於 a>b 若a>b則結果為真 < 小於 a<b 4.2.1 關係運算符號 符號 功能 範例 說明 > 大於 a>b 若a>b則結果為真 < 小於 a<b 若a<b則結果為真 >= 大於等於 a>=b 若a>=b則結果為真 <= 小於等於 a<=b 若a<=b則結果為真 == 等於 a==b 若a==b則結果為真 != 不等於 a!=b 若a!=b則結果為真

4.2.1 關係運算符號 (續) 運算符號的優先順序 18 % 4 * 5 - 7 <= 12 + 25 / 4 – 18 4.2.1 關係運算符號 (續) 運算符號的優先順序 18 % 4 * 5 - 7 <= 12 + 25 / 4 – 18 (((18 % 4) * 5) - 7) <= ((12 + (25 / 4)) - 18) (( 2 * 5) – 7) <= ((12 + 6 ) – 18) ( 10 - 7) <= ( 18 - 18) 3 <= 0 false

4.2.2 邏輯運算符號 符號 功能 範例 說明 ! 邏輯 NOT !(a=1) 若a1則結果為真 && 邏輯 AND 4.2.2 邏輯運算符號 符號 功能 範例 說明 ! 邏輯 NOT !(a=1) 若a1則結果為真 && 邏輯 AND a>1 && a<9 若1<a<9則結果為真 || 邏輯 OR a<1 || a>9 若a<1或a>9則為真

4.2.2 邏輯運算符號 (續) 運算式A 運算式B A&&B A||B 1 4.2.2 邏輯運算符號 (續) 運算式A 運算式B A&&B A||B 1 AND運算:有一個運算式為0 (false) 則A && B為0 (false)。 OR運算:有一個運算式為1 (true) 則A || B為1 (true)。

4.2.2 邏輯運算符號 (續) 運算符號的優先順序 !(4.3 > 3.7) && (7 == 5 + 2) || (15 / 3 < 5) !( true ) && ( true ) || ( 5 < 5 ) !( true ) && ( true ) || ( false ) !( true ) || ( false ) !( true ) false

4.2.3 if敘述 if (條件運算式) C++ 敘述; 範例一 cin >> letter; //輸入letter字元 if (letter == 'Y' || letter == 'y') //若letter = 'Y'或'y' cout << "Yes"; //則顯示"Yes“ 範例二 cin >> number; //輸入number資料 if (number % 3 == 0) //若number/3餘數為0 cout << number << " 為 3 的倍數"; //則顯示訊息

4.2.3 if敘述 (續) 範例三 sum = 0 cin >> num; //輸入num資料 if (num > 0) //若num大於0 sum += num; //sum=sum+num 範例四 if (num > 0) sum += num; //若num>0則 sum+=num

4.2.3 if敘述 (續)

4.2.3 if敘述 (續) 區塊型 if if (條件運算式) { 敘述1; 敘述2; . 敘述n; }

4.2.3 if敘述 (續) 範例 sum = 0 cin >> num; //輸入num資料 if (num > 0) //若num大於0 { //if區塊起始 sum += num; //sum=sum+num cout << sum; //顯示sum值 } //if區塊結束

4.2.3 if敘述 (續)

4.2.4 if-else敘述 單行型 if-else if (條件運算式) 敘述1; else 敘述2;

4.2.4 if-else敘述 (續) 範例一 cin >> letter; //輸入letter字元 if (letter == 'Y' || letter == 'y') //若letter == 'Y'或'y' cout << "Yes"; //則顯示"Yes" else //否則 cout << "No"; //則顯示"No“ 範例二 cin >> number; //輸入number資料 if (number % 3 == 0) //若number/3餘數為0 cout << number << " 是 3 的倍數"; //則顯示訊息1 cout << number << " 不是 3 的倍數"; //則顯示訊息2

4.2.4 if-else敘述 (續)

4.2.4 if-else敘述 (續) 區塊型 if-else if (條件運算式) { 敘述區1; } else { 敘述區2; }

4.2.4 if-else敘述 (續)

4.2.5 if-else if敘述 if(條件運算式) 敘述1; else if(條件運算式) 敘述2; else 敘述n;

4.2.5 if-else if敘述 (續) 範例 if (num > 0) //若num > 0 plus += 1; //則plus = plus + 1 else if (num < 0) //若num < 0 minus += 1; //則minus = minus + 1 else //以上皆非 zero += 1; //則zero = zero + 1

4.2.5 if-else if敘述 (續) 區塊型 if-else if if(條件運算式) { 敘述區1; } else if(條件運算式) { 敘述區2; } else { 敘述區n; }

4.2.5 if-else if敘述 (續) 範例 Short num1, num2; if ((num1 + num2) > 32767) { //若num1+num2>32767 cout << num1 << " + " << num2; cout << " = 上限溢位"; // 顯示錯誤訊息 } else if ((num1 + num2) < -32768) { //若num1+num2<-32768 cout << num1 << " + (" << num2; cout << ") = 下限溢位"; // 顯示錯誤訊息 } else { //以上皆非 sum = num1 + num2; cout << " = " << sum; // 顯示運算值 }

4.2.5 if-else if敘述 (續)

4.2.6 巢狀if敘述 巢狀if敘述(nested if statements)是一個if敘述(或區塊)包含於另一個if敘述(或區塊)之中,簡單的說就是大if包小if。 範例一 if (number > 0) //若number>0 { if (number < 9) //若number<9 cout << "Yes"; //則顯示"Yes" }

4.2.6 巢狀if敘述 (續) 範例二 if (num % 3 == 0) //num是否為3的倍數 { //num是3的倍數 cout << num << "是3和5的倍數"; //num是3和5的倍數 } else //num不是3的倍數 cout << num << "不是3的倍數"; //顯示字串2

4.2.6 巢狀if敘述 (續) 範例三 int year; if (year % 4 != 0) //若year不是4的倍數 cout << year << "不是閏年"; //則顯示year不是閏年 else if (year % 100 == 0) //若year是100的倍數 { if (year % 400 == 0) //且year不是400的倍數 cout << year << "是閏年"; //則顯示year是閏年 else //否 cout << year << "不是閏年"; //則顯示year不是閏年 } else //否 cout << year << "是閏年"; //則顯示year是閏年

4.2.7 switch敘述 switch (條件運算式) { case 數值1: 敘述區1; break; //中斷switch case數值2: 敘述區2; break; //中斷switch default: 敘述區n; }

4.2.7 switch敘述 (續) 範例一 switch(letter) //條件 = letter { case 'Y': //若letter = 'Y' cout << "Yes"; //顯示 "Yes" break; //中斷switch case 'N': //若letter = 'N' cout << "No"; //顯示 "No" default: //若 letter != 'Y'或'N' cout << "Unexpected"; //顯示 "Unexpected" }

4.2.7 switch敘述 (續) 範例二 switch(letter) //條件 = letter { case 'Y': cout << "Yes"; //letter='Y'顯示 "Yes" break; //中斷switch case ‘N’: cout << “No”; //letter=‘N’則顯示 "No" default: //若 letter != 'Y'或'N' cout << "Unexpected"; //顯示 "Unexpected“ }

4.2.7 switch敘述 (續) 範例三 switch(letter) //條件 = letter { case 'Y': //若letter = 'Y' case 'y': //若letter = 'y' cout << "Yes"; //顯示 "Yes" break; //中斷switch case 'N': //若letter = 'N' case 'n': //若letter = 'n' cout << "No"; //顯示 "No" default: //若 letter != 'Y'或'N' cout << "Unexpected"; //顯示 "Unexpected" }

4.2.7 switch敘述 (續)

4.2.8 條件運算符號 變數 = 運算式1 ? 運算式2 : 運算式3 範例 4.2.8 條件運算符號 變數 = 運算式1 ? 運算式2 : 運算式3 範例 letter = (num >= 0) ? '+' : '-'; 對等if-else敘述 if (num >= 0) //若num >= 0 letter = '+'; // letter = '+' else //否 letter = '-'; // letter = '-'

4.2.8 條件運算符號 (續) 運算式1 ? 敘述2 : 敘述3 範例 (num >= 0) ? plus+=1 : minus+=1; 對等if-else敘述 if (num >= 0) //若num >= 0 plus += 1; //則plus = plus + 1 else //否 minus += 1; //則minus = minus + 1