控制流程 邏輯判斷 迴圈控制.

Slides:



Advertisements
Similar presentations
多元評量與 Greenfoot 簡介 南港高中高慧君. 演講大綱 多元評量 高中階段程式設計教學目標與困境 Greenfoot 快速入門 – 袋熊吃樹葉 – 沙灘螃蟹 Greenfoot 臺灣社群介紹 2.
Advertisements

单元二:面向对象程序设计 任务二:借书卡程序设计.
第4章 條件判斷與迴圈 Java 2 程式設計入門與應用.
迴圈 迴圈基本觀念 while迴圈 do 迴圈 for迴圈 巢狀迴圈 迴圈設計注意事項 其他控制指令 迴圈與選擇的組合.
四資二甲 第三週作業 物件導向程式設計.
C#程序设计案例教程 第3章 程 序 结 构.
南京理工大学 第2章 Java基本语法 本章我们将学习Java编程语言的基本语法,包括变量、操作符、表达式、语句、字符串、数组、控制流以及如何使用帮助文档。 使用下面的编程框架: public class Test{ public static void main(String []args){ //以下添加测试代码.
第 5 章 流程控制 (一): 條件分支.
第二章 JAVA语言基础.
第三章 控制结构.
程式設計實作.
Q1: 追蹤程式: 印出結果? 搶答 while (i<=n) { p=p*i; i=i+2; }
2.1 基本資料型別 2.2 變數 2.3 運算式與運算子 2.4 輸出與輸入資料 2.5 資料型別轉換 2.6 實例
CH2 開發環境介紹 最簡單的互動設計 – Arduino一試就上手 孫駿榮、吳明展、盧聰勇.
Class 2 流程控制-選擇敘述與迴圈.
第二章 C# 基础知识.
第四章 在 C# 中实现 OOP 概念.
流程控制結構 4-1 流程控制與UML活動圖 4-2 程式區塊與主控台基本輸入 4-3 條件控制敘述 4-4 迴圈控制敘述 4-5 巢狀迴圈
實作輔導 日期: 3/11 09:10~16:00 地點:臺北市立大學 臺北市中正區愛國西路一號 (中正紀念堂站7號出口)
程序與函數的類別方法 目的:模組化程式設計 方法:由上而下設計 注意事項:(1)獨立性 (2)結合問題 (3)子問題間的溝通.
2018/11/22 Java语言程序设计-程序流程 教师:段鹏飞.
程式敘述執行順序的轉移 控制與重複、方法 Lecturer:曾學文.
副程式概念與 檔案存取 函式與傳值 重構觀念 串流資料 檔案資料存取.
第3章 語法入門 第一個Java程式 文字模式下與程式互動 資料、運算 流程控制.
C 程式設計— 控制敘述 台大資訊工程學系 資訊系統訓練班.
2018/11/27 Java语言程序设计-程序流程 教师:段鹏飞.
JAVA程序设计 第5章 深入理解JAVA语言----补充.
程式設計實作.
抽象类 File类 String类 StringBuffer类
第2章回顾 标识符:不用记,动手 关键字:if, else, switch, for, while, do, break, continue, void, …… 局部变量和成员变量 ①变量作用域 ②内存布局 基本数据类型 ①4类8种 ②互相转换 流程控制语句 ①分支 if……else, switch.
授课老师:龚涛 信息科学与技术学院 2018年3月 教材: 《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
程式撰寫流程.
C 語言簡介 - 2.
PHP 程式流程控制結構.
第三章 流程控制與例外處理 資訊教育研究室 製作 注意:本投影片僅供上課使用,非經同意,請勿散播或轉載。
4.1 一維陣列 4.2 for(:) 迴圈 4.3 動態陣列 4.4 二維陣列 4.5 非矩形陣列
實作輔導 3 日期: 4/14(星期六) 09:10~12:00、13:10~16:00
3.1 数据类型 3.2 标识符与关键字 3.3 常量 3.4 变量 3.5 运算符与表达式 3.6 一个编程实例
本章中將會更詳細地考慮有關重複的概念,並且會 介紹for和do…while等兩種用來控制重複的敘述 式。 也將會介紹switch多重選擇敘述式。 我們會討論直接和迅速離開某種控制敘述式的 break敘述式,以及用來跳過重複敘述式本體剩餘 部份的continue敘述式。 本章會討論用來組合控制條件的邏輯運算子,最後.
2019/1/17 Java语言程序设计-程序流程 教师:段鹏飞.
程序的三种基本结构 if条件分支语句 switch多路开关语句 循环语句 循环嵌套 break,continue和goto语句
第5讲 使用类和对象编程(三) 内部类 实例 程序控制结构 选择语句.
Ch02-基礎語法.
程式設計 老師:戴自強 助教:楊斯竣.
第三章 C# 基础知识.
第3章 Java語法的JSP程式 3-1 Java語言的基礎 3-2 JSP程式的基本架構 3-3 Java的變數與資料型態
Week 2: 程式設計概念與 演算法的效能評估
實作輔導 2 日期: 3/24(星期六) 09:10~16:00 地點:臺北市立大學 臺北市中正區愛國西路一號 (中正紀念堂站7號出口)
第二章Java基本程序设计.
程式結構&語法.
Java變數 2014/6/24.
4 條件選擇 4.1 程式基本結構 循序式結構 選擇式結構 重複式結構 4-3
第二章 Java基本语法 讲师:复凡.
<编程达人入门课程> 本节内容 为什么要使用变量? 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ:
第二章 Java语法基础.
目标 流程控制 字符串处理 C# 的类和对象 C# 访问修饰符 C# 构造函数和析构函数.
龍老師我不會Debug QQ.
#include <iostream.h>
第二章 Java基本语法 讲师:复凡.
PPT注意事项: 当前PPT课件文件必须和提供的源代码文件夹“代码”在同一目录中即不要移动文件夹“代码”的默认位置。
第2章 Java语言基础.
第6章 PHP基本語法介紹.
多重條件選擇敘述
迴圈(重複性結構) for while do while.
C#快速導讀 流程控制.
判斷(選擇性敘述) if if else else if 條件運算子.
鄭士康 國立台灣大學 電機工程學系/電信工程研究所/ 資訊網路與多媒體研究所
第三章 流程控制 程序的运行流程 选择结构语句 循环结构语句 主讲:李祥 时间:2015年10月.
第二章 Java基础语法 北京传智播客教育
第二章 Java基本语法 讲师:复凡.
Presentation transcript:

控制流程 邏輯判斷 迴圈控制

流程控制結構 流程控制結構(Control Structure)- 傳統的程式設計概念以結構化程式設計(Structured Programming)為基礎,使用由上而下的設計(Top-down Design)來分析問題 將程式分解成階層架構(Hierarchical Architecture)的模組(Module),每個模組擁有獨立功能的程式碼,只有單一的進入點和離開點 用循序(Sequential)、選擇(Selection)及迭代(Iteration)等三種流程控制結構來整合 循序-宣告變數→取得初始值→資料運算→輸出結果 選擇-if … else邏輯判斷設定不同條件之進入點 迭代-for, while, do…while迴圈流程重複相同的運算程序

邏輯判斷-條件控制敘述(Conditional Control) if是否選擇條件敘述 if (比較式) { 比較式成立時 執行此區段; }

if...else二選一條件敘述 if (比較式){ 執行區段1; } else { 執行區段2; }

比較式之邏輯概念 比較式亦可直接代入布林變數(或布林值) 等式:== , equals() 數值判斷:a == b, b == 10 字元判斷:c == ‘A’ 字串判斷:str.equals(“Tom”), str1.equals(str2) 不等式:>, <, >=, <=, <>, !=, !equals() 數值判斷:a > b, b < 10.5, a >= b, a <= 10, a <> 0, d != 5 字元判斷:c < ‘K’, c1 <> c2, c0 != ‘O’ 字串判斷:!str.equals(“Mary”) 邏輯比較:&&, ||, ! 且(AND):(a > b) && str1.equals(str2) 或(OR):(c==‘A’) || b<>7 非(NOT):!(b <= a), !str.equals(“Mary”) 比較式亦可直接代入布林變數(或布林值) if(true), if(false)

if...else if...else多選一條件敘述 if (比較式1){ 執行區段1 }elseif (比較式2){ 執行區段2 }else{ 執行區段 }

switch多選一條件敘述(下式中case後的比較值為單一字元或整數) switch(變數) { case 比較值1: 執行區段; break; case 比較值2: 執行區段; break; : default: 執行區段; }

條件控制範例 public class Ex02_ControlFlow { public static void main(String[] args) { // TODO code application logic here int score = 60; // if條件敘述 System.out.println("Score: " + score); if ( score >= 60 ) { System.out.print("JavaSE Design"); System.out.println("Pass!:)"); } score = 56; if ( score < 60 ) System.out.println("Failed!:("); // if-else條件敘述 } else { 條件控制範例

String stage = "baby"; // if-else if-else多選一條件敘述 System.out.println("Passenger Stage: " + stage); if (stage.equals("student")) System.out.println("Student Rate: NT$12"); else if (stage.equals("senior")) System.out.println("Senior Rate: NT$8"); else if(stage.equals("baby")) System.out.println("Baby Rate: Free") ; else System.out.println("Regular Rate: NT$15"); int age = 40; // if-else多選一條件敘述 System.out.println("Passenger Age: " + age); if ( age <= 18 && !stage.equals("baby")) if ( age >= 65 || stage.equals("senior")) System.out.println("Baby Rage: Free") ;

// switch多選一條件敘述 char grade = 'C'; System.out.println("Student GPA: " + grade); switch (grade) { case 'A': System.out.println("The Score Passing 80 points"); break; case 'B': System.out.println("The Score Between 70~79 points"); case 'C': System.out.println("The Score Between 60~69 points"); default: System.out.println("The Score Under 60 points"); }

迴圈控制敘述(Loop Control) for迴圈敘述- for(計數起始條件;計數終止條件; 計數累進) { 執行區段; } 執行迴圈前後不檢查條件運算式,又稱計數迴圈(counting loop) ex: 計算sum = 1 + 2 + … + 100 int sum = 0; for(int i=1; i<=100; i++) { sum = sum + i ; }

while迴圈敘述- while(條件運算式) { 執行區段; } 執行迴圈前檢查條件運算式,直到不符合條件時離開回圈 ex: 計算sum = 1 + 2 + … + 100 int sum = 0, count = 1 ; while(count <= 100) { sum = sum + count ; count ++ ; }

do … while迴圈敘述- do { 執行區段; } while (條件運算式) ; 執行迴圈後檢查條件運算式,直到不符合條件時離開迴圈,故迴圈一定會執行第一次 ex: 計算sum = 1 + 2 + … + 100 int sum = 0, count = 0 ; do { count ++ ; sum = sum + count ; }while(count<=100);

巢式迴圈- 迴圈中包含迴圈,可以前述三種迴圈形式交互應用 利用break敘述跳出一層迴圈 ex: 列印九九乘法表 for(int i=1; i<=9; i++) { for(int j=1; j<=9; j++) { int prod = i*j ; System.out.print(i + “*” + j + “=” + prod + “\t”) ; } System.out.print(“\n”) ; } ex: 計算n階乘(n!),輸入n值計算連乘積,但n=0時自動離開迴圈並使連乘積為1 Scanner sc = new Scanner(System.in) ; int n = sc.nextInt() ; int count = 0, prod = 1; do { count ++ ; if(n==0) break ; prod = prod * count ; } while (count<=n) ;

迴圈控制範例 public class Ex02_LoopControl { public static void main(String[] args) { // 測試for迴圈 int total = 0; // 遞增for迴圈敘述 for (int i = 1; i <= 10; i++ ) { System.out.print("Number: " + i + " "); total += i; } System.out.println("\nSummary from 1 to 10: " + total); System.out.println(" ----------------- "); total = 0; // 重設總和變數 // 遞減for迴圈敘述 for (int i = 10; i >= 1; i-- ) { System.out.println("\nSummary from 10 to 1: " + total);

// 溫度對照表 double c = 30; double f; System.out.println("C F"); // while迴圈敘述 while ( c <= 100 ) { f = (9.0 * c) / 5.0 + 32.0; System.out.println(c + " " + f); c += 10; } // 繩索對折次數計算 int count = 0; // 計算次數 float len = 100.0f; // do/while迴圈敘述 do { System.out.println(count + " Length: " + len); count++; len /= 2.0; // 對折繩索 } while ( len > 20.0 ); System.out.println("Folding Number: " + count); System.out.println("Final Length: " + len);

// 浮點數迭加 – 誤差累計 double d=0.1; double sum=0.0; while(d<=10){ sum=sum+d; System.out.println(d +"\t"+sum + "\t" + Math.round(sum*100)/100.0); d = d + 0.1; } // 階乘計算 – 計算5! int prod = 1 ; int num = 5 count = 1; // do/while迴圈敘述 do { System.out.println("Number: " + num); if (num == 0) break ; // 跳出迴圈 else prod *= count; count++; } while ( count <= num ); System.out.println("5! = " + prod);

// 樂透彩自動選號 int lo1, lo2, lo3, lo4, lo5, lo6 ; boolean check ; int k = 1; do { lo1 = ((int)(Math.random() * 1000)) % 49 + 1; lo2 = ((int)(Math.random() * 1000)) % 49 + 1; lo3 = ((int)(Math.random() * 1000)) % 49 + 1; lo4 = ((int)(Math.random() * 1000)) % 49 + 1; lo5 = ((int)(Math.random() * 1000)) % 49 + 1; lo6 = ((int)(Math.random() * 1000)) % 49 + 1; check = false; if(lo1 == lo2 || lo1 == lo3 || lo1 == lo4 || lo1 == lo5 || lo1 == lo6 || lo2 == lo3 || lo2 == lo4 || lo2 == lo5 || lo2 == lo6 || lo3 == lo4 || lo3 == lo5 || lo4 == lo5 || lo4 == lo5 || lo4 == lo6 || lo5 == lo6) check = true ; k++ ; } while(check) ; System.out.println("重號次數:" + k + "\n" + "樂透號碼:" + lo1 + "\t" + lo2 + "\t" + lo3 + "\t" + lo4 + "\t" + lo5 + "\t" + lo6 + "\n") ;

// 九九乘法表 // 顯示標題列 System.out.print(" "); for (int i = 1; i <= 9; i++ ) System.out.print(i + " "); System.out.println(); // 巢狀迴圈-第一層while迴圈 int row = 0, col=0 ; while (row <= 9 ) { // 顯示欄標題 System.out.print(row + " "); for (col = 1; col <= 9; col++ ) { // 第二層for迴圈 System.out.print(row + "*" + col + "="); System.out.print(row*col + " "); if ( (row*col ) < 10 && col != 1 ) System.out.print(" ");// 調整顯示位置 } row++; // 計數器變數加一