.NET 程式設計入門 ( 使用 C#) 講師:鄧智鴻. Outline  流程控制 : 選擇判斷流程  流程控制 : 重覆流程  巢狀式迴圈.

Slides:



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

Introduction to C Programming
計算機程式語言實習課.
鄭士康 國立台灣大學 電機工程學系/電信工程研究所/ 資訊網路與多媒體研究所
第4章 條件判斷與迴圈 Java 2 程式設計入門與應用.
Lab02 授課:ANT 日期:2011/3/14.
C#程序设计案例教程 第3章 程 序 结 构.
第4章 流程控制結構 4-1 結構化程式設計 4-2 程式區塊 4-3 簡單的條件控制敘述 4-4 巢狀條件敘述 4-5 多選一條件敘述
第 5 章 流程控制 (一): 條件分支.
第 5 章 流程控制.
條件判斷 授課:林哲嘉 日期:2009/3/4.
第三章 控制结构.
張智星 台大資工系 多媒體檢索實驗室 第二章 程式控制結構 張智星 台大資工系 多媒體檢索實驗室.
Chapter 5 迴圈.
程式語言 -Visual Basic 條件結構.
Class 2 流程控制-選擇敘述與迴圈.
Visual C++ introduction
Do.For.While.正三角.倒正三角.倒九九乘法表
.NET 程式設計入門(使用 C#) 講師:鄧智鴻.
第二章 C# 基础知识.
C++Primer 3rd edition 中文版 Chap 5
2-3 基本數位邏輯處理※.
流程控制結構 4-1 流程控制與UML活動圖 4-2 程式區塊與主控台基本輸入 4-3 條件控制敘述 4-4 迴圈控制敘述 4-5 巢狀迴圈
第四章 流程控制(一) if,if-else 與 switch
C 程式設計— 控制敘述 台大資訊工程學系 資訊系統訓練班.
保留字與識別字.
流程控制 大綱 傳遞參數給main()方法 流程控制的用途與種類 if判斷敘述 switch 判斷敘述.
類別(class) 類別class與物件object.
SQL Stored Procedure SQL 預存程序.
PHP 程式流程控制結構.
第三章 流程控制與例外處理 資訊教育研究室 製作 注意:本投影片僅供上課使用,非經同意,請勿散播或轉載。
Tense Buster 操作手冊 畹禾有限公司.
Java 程式設計 講師:FrankLin.
第六章 迴 圈 結 構 課程名稱:程式設計 授課老師:李春雄 博士 各位同學大家好,我是李春雄老師,本學期所開設的課程名稱為「資料結構」,
邏輯關係運算 == 等於 & 且 (logical and) ~= 不等於 | 或 (logical or) < 小於
Instructor:Po-Yu Kuo 教師:郭柏佑
第一單元 建立java 程式.
第三章 C# 基础知识.
分支宣告與程式設計 黃聰明 國立臺灣師範大學數學系
選擇性結構 if-else… switch-case 重複性結構 while… do-while… for…
義守大學電機工程學系 陳慶瀚 第4章 VHDL Sequential語法 義守大學電機工程學系 陳慶瀚
第一章 直角坐標系 1-3 函數圖形.
JAVA 程式設計 資訊管理系 - 網路組.
ASP基礎— VBScript基本語法 張森.
5 重複迴圈 5.1 增減運算符號 增量運算符號 減量運算符號
Introduction to C Programming
語法:結構 實作:Analog in (VR、光敏+七段顯示電壓) 簡報:廖崇義
CH05. 選擇敘述.
期末考.
第 5 章 流程控制.
實作輔導 本周5/5(六)安排實作輔導 二時段: 周六 11:00~12:30 周六13:30~15:30.
第二章 Java语法基础.
流程控制:Switch-Case 94學年度第一學期‧資訊教育 東海大學物理系.
MiRanda Java Interface v1.0的使用方法
亂數 隨機產生亂數 Random類別支援的方法: Next多載方法 Next :傳回亂數。
目标 流程控制 字符串处理 C# 的类和对象 C# 访问修饰符 C# 构造函数和析构函数.
PHP程式設計 五、程式流程控制結構 建國科技大學 資訊管理學系 饒瑞佶.
選擇性結構 if-else… switch-case 重複性結構 while… do-while… for…
資料結構與C++程式設計進階 期末考 講師:林業峻 CSIE, NTU 7/ 15, 2010.
迴圈(重複性結構) for while do while.
適用於多選一 可減少if 與 else配對混淆的錯誤.
C#快速導讀 流程控制.
鄭士康 國立台灣大學 電機工程學系/電信工程研究所/ 資訊網路與多媒體研究所
10791: Minimum Sum LCM ★★★☆☆ 題組:Problem Set Archive with Online Judge
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
C/C++基礎程式設計班 控制敘述 講師:林業峻 CSIE, NTU 3/7, 2015.
第三章 流程控制 程序的运行流程 选择结构语句 循环结构语句 主讲:李祥 时间:2015年10月.
C語言程式設計 老師:謝孟諺 助教:楊斯竣.
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
InputStreamReader Console Scanner
Presentation transcript:

.NET 程式設計入門 ( 使用 C#) 講師:鄧智鴻

Outline  流程控制 : 選擇判斷流程  流程控制 : 重覆流程  巢狀式迴圈

Outline  流程控制 : 選擇判斷流程  流程控制 : 重覆流程  巢狀式迴圈

流程控制 : 選擇判斷流程 擇一執行 程式區塊 1 程式區塊 2-1 程式區塊 2-2 程式區塊 3

流程控制 : 選擇判斷流程  if...else…  可利用關係及邏輯運算子,來描述是否執行流程中的程式 區塊  語法 if ( 判斷條件 ) { 條件成立時執行內容 ; } else { 條件不成立時執行內容 ; }

流程控制 : 選擇判斷流程 - 課堂範例  程式功能  請使用者先輸入名字  猜測使用者為男生  請使用者回答是否為男生  列印結語  程式內容  // 輸入資料  Console.Write(" 請輸入您的名字︰ ");  string name = Console.ReadLine();  Console.WriteLine(" 我猜 " + name + " 您一定是個男生 !!");

流程控制 : 選擇判斷流程 - 課堂範例  程式內容 Console.Write(“\n 所以 … 您真的是男生嗎 ? (y/n)"); string sex = Console.ReadLine(); if (sex == "y" || sex == "Y“ ) { Console.WriteLine(" 怎麼樣 !! 厲害吧 !!"); } else { Console.WriteLine(" 其實我是故意猜錯的 !!"); }

流程控制 : 選擇判斷流程 - 課堂練習  程式功能  請使用者先輸入名字  利用亂數來決定猜測使用者為男生或女生  請使用者回答是否為亂數所產生出來的性別  列印結語  基本概念  可使用亂數產生一個為 0 或 1 的數,當為 0 時猜測為女生, 為 1 時猜測為男生

流程控制 : 選擇判斷流程 擇一執行 程式區塊 1 程式區塊 2-1 程式區塊 2-2 程式區塊 3 程式區塊 2-3 程式區塊 2-4

流程控制 : 選擇判斷流程  If…else if … else...  當程式具有多個判斷條件時,可利用 if …else if …else if …else 來完成  語法 if ( 判斷條件 1) { 程式區塊 1; } else if ( 判斷條件 2) { 程式區塊 2; } else if ( 判斷條件 3) { 程式區塊 3; } else { 程式區塊 4; }

流程控制 : 選擇判斷流程 - 課堂範例  程式功能  請使用者輸入考試成績  列印成績的等第  程式內容 // 輸入資料 Console.Write(" 請輸入您的成績︰ "); int grade = int.Parse(Console.ReadLine());

流程控制 : 選擇判斷流程 - 課堂範例 // 輸出結果 Console.Write("\n 您的成績等第為︰ "); if (grade >= 80 && grade <= 100) { Console.WriteLine(" 優等 !!"); } else if (grade >= 70 && grade < 80) { Console.WriteLine(" 甲等 !!"); } else if (grade >= 60 && grade < 70) { Console.WriteLine(" 乙等 !!"); } else { Console.WriteLine(“ 丙等 !!"); }

流程控制 : 選擇判斷流程 - 課堂練習  程式功能  剪刀、石頭、布  列印剪刀、石頭及布讓使用者選擇  電腦隨機選擇  列印勝負結果  基本概念  以數字 1 、 2 、 3 記錄使用者所出的拳  利用亂數選擇電腦要出的拳  利用 if …else if …else 判斷結果

流程控制 : 選擇判斷流程  三元運算子可用來取代 if …else 流程控制,使得程式 碼更為簡潔  語法  變數 = 判斷條件 ? 變數值 1 : 變數值 2  用法  string a = 7>4 ? "7 比 4 大是對的 " : "7 比 4 大是錯的 ";  輸出結果︰ 7 比 4 大是對的  string b = 1>4 ? "1 比 4 大是對的 " : "1 比 4 大是錯的 ";  輸出結果︰ 1 比 4 大是錯的

流程控制 : 選擇判斷流程 - 課堂練習  程式功能  請使用者輸入兩個數字  在螢幕上列印出大的那一個  基本概念  三元運算子可以簡單地達成

流程控制 : 選擇判斷流程  程式中若具有多個判斷條件時,除了 if …else if …else 流程 控制外,還可以選擇 switch 敘述  語法 switch ( 判斷數值 ) { case 條件值 1: 程式區塊 1 break; case 條件值 2: 程式區塊 2 break; default: 預設程式區塊 break; }

流程控制 : 選擇判斷流程  switch 流程控制不但簡潔更易維護  switch 的判斷條件可為變數、數值或字串等等  判斷條件結果之資料型別要與所有條件值的資料型別 一致  若條件值 1 滿足時,便會執行程式區塊 1 的程式內容, 直到 break 為止,然後離開 switch 敍述  若所有條件值皆不滿足時,便會執行 default 的預設程 式區塊內容

流程控制 : 選擇判斷流程 - 課堂範例  程式功能  請使用者輸入他想看的頻道  然後編個理由和他說節目沒了 ( 不同頻道要用不同理由 )  程式內容 // 輸入頻道 int channel; Console.WriteLine(“ 頻道 1- 中華職棒 "); Console.WriteLine(“ 頻道 2- 彩虹頻道 "); Console.WriteLine(“ 請輸入您想看的頻道︰ "); channel = int.Parse(Console.ReadLine());

流程控制 : 選擇判斷流程 - 課堂範例 switch (channel) { case 1: Console.WriteLine(" 中華職棒快打不下去了, 看了傷心還是別看吧 "); break; case 2: Console.WriteLine(" 彩虹要下雨天打開窗才可能看見喔 "); break; default: Console.WriteLine(" 不看就算了 "); break; }

流程控制 : 選擇判斷流程 - 課堂練習  程式功能  月份季節轉換  請使用者輸入月份  列印出所屬季節  基本概念  利用 switch 判斷結果  { case 1: case 2: 程式區塊 1….. break; // 這樣值為 1 或 2 的時候都會執行 }

Outline  流程控制 : 選擇判斷流程  流程控制 : 重覆流程  巢狀式迴圈

流程控制 : 重覆流程 重複多次 程式區塊 1 程式區塊 2 程式區塊 3

流程控制 : 重覆流程  for loop  當我們需要重複執行某段程式區塊時,就可以利用重複結 構流程控制來達成  語法 for ( 初值 ; 判斷式 ; 遞變值 ) { 程式區塊 ; }  用法 for (int i=0; i<10; i++) { Console.Write (i + " "); } // 輸出結果︰

流程控制 : 重覆流程  迴圈執行時,會先判斷初值是否滿足判斷式,若滿足則執 行程式區塊,程式區塊執行完畢後會回到遞增值部份,遞 增值結束後再一次回到判斷式中,檢查遞增後的值是否滿 足判斷式,滿足再次執行程式區塊,完成後再次回到遞增 值部份,直到判斷式不滿足為止離開迴圈  程式區塊只有一行時,可省略大括號  假設初值與遞增值有二個以上的運算式,中間必須以逗號 分隔  for (int i=0, j=0; i*j <10; i++, j++)  初值、判斷式及遞增值必須仔細考量設定,以防造成『無 窮迴圈』  若初值、判斷式及遞增值皆省略,即為無窮迴窮  for ( ; ; )

流程控制 : 重覆流程 - 課堂範例  程式功能 輸入 x 列印出 1 ~ x 間所有整數和  程式內容 Console.Write(" 請輸入 x 的值︰ "); int x = int.Parse(Console.ReadLine()); int sum = 0; for(int i=1; i<=x; i++) { sum +=i; } Console.WriteLine("1 ~ " + x + " 間的整數和為︰ " + sum );

流程控制 : 重覆流程 - 課堂練習  程式功能  輸入 x  列印出 1~x 間所有奇數和

流程控制 : 重覆流程  break 在執行迴圈中,若遇到 break 陳述句時,會立即跳出迴圈  continue 在執行迴圈中,若遇到 continue 陳述句時,會略過而不執 行迴圈體中剩下的部份,立即跳至遞增值部份

流程控制 : 重覆流程 - 課堂範例  程式功能  for loop 執行 100 次,每次都亂數產生一個 1~100 間數  若第 k 次的 loop 產生的亂數剛好是 k ,那就跳出迴圈  每次都列出現在是第幾次,以及產生的亂數為多少  程式內容 int random_number; Random ran = new Random(); for (int a = 1; a <= 100;a++ ) { random_number = ran.Next(1, 101); Console.WriteLine(“ 現在是第 “+a+” 次 ”+”, 產生的亂數為 ”+random_number); if (a == random_number) { break; } Console.ReadKey();

流程控制 : 重覆流程 - 課堂練習  程式功能  登入系統  請使用者輸入密碼  輸入密碼為 john 則允許登入  容許三次登入機會

流程控制 : 重覆流程 - 課堂範例  程式功能  輸入 x  列印出 1~10 間不含 x 的所有數  程式內容 Console.Write(“ 請輸入一個整數 :”); int x=int.Parse(Console.ReadLine()); for(int i=1; i<=10; i++) { if(i==x) {continue;} Console.WriteLine(i); }

流程控制 : 重覆流程 - 課堂練習  程式功能  請使用者輸入一整數 N  請統計 1~N 中有多少整數可被 5 整除  將答案列印出來  提示  1~N 中的每個數都要被檢驗是否可被 5 整除,但不是每個數 都要被列入統計

流程控制 : 重覆流程  while loop  for 迴圈中必須先設定迴圈執行次數,而 while 迴圈只須設定執行迴圈 的條件即可,當條件滿足時,即會不斷重複執行  語法 while ( 判斷條件 ) { 程式區塊 }  用法 int i = 0; while (i < 10) { i++; Console.Write(i + " "); } // 輸出結果︰

流程控制 : 重覆流程  while 迴圈在執行時,會先檢查條件是否成立,當條件 成立時才會執行迴圈中的程式區塊  while 迴圈中,一樣可以使用 break 及 continue  程式區塊中,必須有將判斷條件變成 false 的陳述句, 否則將導致無窮迴圈  while 迴圈判斷條件後加上時,表示迴圈中不需執行任 何程式區塊  while (Console.ReadLine() != "yes");

流程控制 : 重覆流程 - 課堂範例  程式功能  階乘計算  輸入 x  列印出 x! 的值  基本概念 int result=1, x, i=1; x = int.Parse(Console.ReadLine()); while(i<=x) { result *= i++; } Console.WriteLine(result); Console.ReadKey();

流程控制 : 重覆流程 - 課堂練習  程式功能  請使用者輸入整數  列印出 1 加 2 加 3 加至多少才會大於該整數 例 :“1+…+3 才會大於 5”  請使用者輸入 quit 後離開

流程控制 : 重覆流程  do…while loop  while 迴圈執行時,會先檢查條件是否成立,進而決定 是否執行迴圈中的程式區塊。而 do …while 迴圈第一 次執行時並不會先檢查判斷條件,直接執行迴圈中的 程式區塊,執行完畢後才會檢查條件是否滿足  語法 do { 程式區塊 } while ( 判斷條件 );

流程控制 : 重覆流程  用法 do { Console.WriteLine("1"); }while (false); // 輸出結果︰ 1  do …while 迴圈中,一樣可以使用 break 及 continue

流程控制 : 重覆流程 - 課堂範例  程式功能  判斷輸入值是否在 0 ~ 100 間  輸入 x  若 x 的值不在範圍內,請使用者重新輸入  程式內容 int input; do { Console.WriteLine(" 請輸入 1~100 間的整數 "); input=int.Parse(Console.ReadLine()); } while (input 100 );

流程控制 : 重覆流程 - 課堂練習  程式功能  簡易猜數字遊戲  亂數產生一個 1~3 間的整數  請使用者猜測整數值  若猜對則列印 " 您好厲害猜中了 !!“ 否則列印 ” 哈哈哈 !! 沒猜中 !!"  詢問使用者是否再玩一次

流程控制 : 重覆流程 - 課堂練習  程式功能  輸入二個整數  求出二整數間之最大公因數  利用輾轉相除法完成  提示  輾轉相除法 : 一直除以餘數直到可除盡  例如 : 取 18 和 12 的最大公因數 18/12=1…6 12/6=2…0  除盡了,表示 6 是最大公因數

Outline  流程控制 : 選擇判斷流程  流程控制 : 重覆流程  巢狀式迴圈

巢狀式迴圈 重複多次 程式區塊 1 程式區塊 2 程式區塊 3 重複多次 程式區塊 2-1 程式區塊 2-2

巢狀式迴圈  在一個迴圈的程式區塊中又有一個迴圈,我們稱之為 『巢狀式迴圈』  假設 A 迴圈執行 m 次, B 迴圈執行 n 次, B 迴圈在 A 迴 圈當中,則 A 迴圈每執行一次, B 迴圈就會執行 n 次, 因此最後 B 迴圈的程式區塊會被執行 m * n 次

巢狀式迴圈  程式功能  輸入內外迴圈執行次數  計算內迴圈內的程式碼實際執行多少次  列印內迴圈執行次數  程式內容 // 輸入資料 Console.Write(" 輸入外迴圈執行次數︰ "); int m = int.Parse(Console.ReadLine()); Console.Write(" 輸入內迴圈執行次數︰ "); int n = int.Parse(Console.ReadLine());

巢狀式迴圈  程式內容 // 列印結果 int c=0; for(int i=0; i<m; i++) { for(int j=0; j<n; j++) { Console.WriteLine(" 內迴圈已經執行︰ " + (++c) + " 次 !!"); }

巢狀式迴圈 - 課堂範例  程式功能  列印出九九乘法表  程式內容 // 列印九九乘法表 for(int i=1; i<=9; i++) { for(int j=1; j<=9; j++) { Console.Write(i + "*" + j + "=" + (i*j) + "\t"); } Console.WriteLine(); }

巢狀式迴圈 - 課堂練習  程式功能  輸入 n  列印出邊長為 n 的實心正方形 * *

巢狀式迴圈 - 課堂範例  程式功能  輸入 x  列印出邊長為 x 的空心正方形  程式內容 int x; do { Console.Write(" 請輸入 x 的值 ( 奇數 ) ︰ "); x = int.Parse(Console.ReadLine()); } while (x <= 0);

巢狀式迴圈 - 課堂範例  程式內容 for(int i=0; i<x; i++) { for(int j=0; j<x; j++) { if (i >= 1 && i = 1 && j < x - 1) Console.Write(" "); else Console.Write(“* ”); } Console.WriteLine(); } Console.ReadKey();

巢狀式迴圈 - 課堂練習  程式功能  輸入 x ( 奇數 )  列印出邊長為 x 的格子狀正方形  例如 :  X=5  * * * * *  * * *  * * * * *  * * *  * * * * *

變數生命周期  變數的生命週期根據變數所屬的有效範圍來決定  我們可以簡單的把一組大括號所包含的範圍稱為一段 『程式碼區塊』  程式碼區塊界定變數的有效範圍  實例  在迴圈中宣告的變數,在迴圈外的程式碼區塊中便無法存 取該變數 for (int a = 0; a < 5; a++) { int I_am_a_variable; } I_am_a_variable = 1; // 錯誤, 因為這個變數已經不存在了

變數生命周期  例子 2 int k; for (int a = 0; a < 5; a++) { int k; }  例子 3 for (int a = 0; a < 5; a++) { int k; } for (int b = 0; b < 5; b++) { int k; }

作業 1-1  程式功能  輸入 x  列印出邊長為 x 的等腰直角三角形  基本概念  利用 if 來判斷決定出該列印那些星星

作業 1-2  程式功能  輸入平行四邊形的底和高  列印實心及空心平行四邊形