1.08k likes | 1.33k Views
網際網路程式設計 C# 資料型別與流程控制. 鄧姚文 http://www.ywdeng.idv.tw. 參考書. 李育丞( 2012 ), ASP.NET 網頁資料庫程式設計, 博碩文化股份有限公司, ISBN 978-986-201-628-2 (書號 PG31204 ). 大綱. 認識 C# 的資料型別 學習變數的宣告與使用 學習運算子與運算式的使用 學習 C# 選擇結構語法 學習 C# 重複結構語法 學習 C# 例外處理語法. 程式 的構成 要素. 識別項( Identifier ) 陳述句( Statement )
E N D
網際網路程式設計C#資料型別與流程控制 鄧姚文 http://www.ywdeng.idv.tw
參考書 李育丞(2012), ASP.NET網頁資料庫程式設計, 博碩文化股份有限公司, ISBN 978-986-201-628-2 (書號 PG31204)
大綱 認識C# 的資料型別 學習變數的宣告與使用 學習運算子與運算式的使用 學習C# 選擇結構語法 學習C# 重複結構語法 學習C# 例外處理語法
程式的構成要素 識別項(Identifier) 陳述句(Statement) 保留字(Reserved Words)、關鍵字(Keywords) 語法(Syntax)
2.1.1 識別項 • 每一個東西,都要有名字 • 沒有名字的東西,無法調用 • 同名同姓造成困擾 • 識別項 • 識別字 • Identifier
識別項命名規則 • 第一個字元必須是Unicode的英文字母(大寫或小寫)、底線 _ 字元,可以使用中文字。接在後面的字元可以是英文字母、數字或底線 _ 或中文字。 • 識別項中間不可以有空白 • 最大長度限 16,383 個字元。 • 不要以關鍵字作為識別項。 • 關鍵字之前加上前置字元 @ 可當作識別項。 • byte 為關鍵字, @byte 為識別項。 • 英文字母大小寫視為相異 • Score 和 score 不同 • 有效的識別項:_x、isEven、Part9、POOL_SIZE、七十二變 • 無效的識別項:101Metro(以數字開頭),M&M(中間出現&)、追分 成功(中間有空格)
陳述式 int m = 1; int n = 2; int p = m; m = n; n = p; • 陳述式 • 敘述 • Statement • 高階語言程式中最小的可執行單位 • 程式(Program) • 由一行一行的陳述式組成 • 陳述式的組成 • 關鍵字、運算子、變數、常數、運算式等 • 讀取/執行的方向 • 由左而右 • 由上而下 • 每一行敘述的結尾都以分號「;」結束
分號『;』標示 Statement 的結束,不管它寫成幾行
關鍵字 • 關鍵字(Key Word) • 保留字(Reserved Word) • 對編譯器(Compiler)有特殊意義而預先定義的保留識別項 • 若萬不得已必須使用關鍵字當作變數,必須在關鍵字最前面加上一個前置字元 @ • Visual Studio 顯示程式碼時,若關鍵字以藍色標示
常數與變數 • 識別項,用於代表資料或物件 • 常數(Constant) • 恆常不變者 • 變數(Variable) • 內容可以改變
常數(Constant) • 常值常數(Literal Constant) • 文數字常數 • 符號常數(Symbolic Constant)
常值常數(Literal Constant) • 程式中的文字與數字
二. 符號常數(Symbolic Constant) • 為某些文字或數字命名 • 提高可讀性 • 易於維護 • 以 const宣告 • 宣告之後就不可修改或指派新的值 • 通常以『全部大寫』的英文字母命名 • 宣告方式:
一個成績查詢範例:為何要用常數 • 一個班級60個同學 • 成績存在檔案裡 • 檔案格式:一行一個數字,整數沒有小數點,第 1 行是 1 號同學的成績,第 2 行是 2 號同學的成績,其餘依此類推,沒有空號。 • 成績查詢功能: • 輸入座號(1~60號) • 輸出成績與評語 • 評語只有『及格』、『不及格』兩種 • 成績達 60 分為及格
一個使用 Literal 的解 問題:人數若變成 65 怎麼辦?
Visual Studio .Net 共用整合式開發環境 方案 Solution 專案 Project 一個方案之中可以包含多個專案
變數(Variable) • 一個變數代表一個特定的資料項目或值 • 在記憶體中預留一個位置儲存該項資料 • 為變數指派一個值之後,該變數會維持該值,一直到指派另一個新值給它為止
資料型別 整數型別(Integer) 浮點數型別(Floating Point) decimal 型別(錢) char 型別(字元) bool 型別(布林、真假值) object 型別(物件) string 型別(字串)
整數型別 kilo, mega, giga, tera, peta, exa, zetta
浮點數型別 float ratio = 1.5F
Decimal 型別 相較於 double, decimal 有效位數較多,值域較小,適合金融運算。 decimal ratio = 32.25M
Char 型別 字元採 Unicode 編碼 'A' 是一個字元 '文' 也是一個字元
Bool 型別 只有 true 和 false 兩個值 bool thisOneIsBigger = thisOne > thatOne; if (thisOneIsBigger) { loadLargerOne(thisOne); } else { loadLargerOne(thatOne); }
Object 型別 System.Object是一切類別的始祖
String 型別 字串採 Unicode 編碼 字串並不僅僅是字元的線性集合 "This is a book" "這是第一行\n這是第二行\n目前路徑為C:\\Windows" 以 @ 括住的字串常值不處理逸出序列, 適用於Windows檔案名稱: string fileName = @"c:\data\20091122.txt";
數值資料 • 整數(Integer) • 十進位26,十六進位 0x1A,八進位032 • 浮點數(Floating Point) • 2300,2.3E3 • 字元(Character) • '文'、'a'、'\u0061'、'\x0061' • 字串(String) • "電腦" • 跳脫字元(Escape Characters) • '\n'
運算子與運算式 P + Q • 運算子(Operator) • 運算符號 • 例如: + - * / % • 運算元(Operand) • 運算的對象
2.4.1 運算子與運算元 • 運算式( Expression ) • 又稱為『表示式』 • 由運算元和運算子構成 • 例如: • a++ • a – b • (a > 0) ? a : -a 一元運算(Unary) 二元運算(Binary) 三元運算(Ternary)
運算子的分類 • 算術運算子 • 指定(複合)運算子 • 關係運算子 • 邏輯運算子 • 合併運算子 • 移位運算子
算術運算子 用於數學計算
算術運算依照優先順序處理 • 由左而右,先乘除後加減,括弧內的先做
練習:攝氏溫度轉華氏溫度 • 輸入: • 攝氏溫度 C • 輸出: • 華氏溫度 F • 轉換公式 • 技術 • 以 double.Parse() 將字串轉換為數字
關係運算子 用於比較大小
邏輯運算子 • 關係邏輯 • 真 true • 假 false • 且 AND && • 或 OR || • 互斥或 XOR ^ • 否、非 NOT !
合併運算子 • + 用於字串為合併,用於數字為加法
移位運算子 • 移位運算子用於數值資料,以二進制的方式處理 • << :左移運算子 • 往左移一個位元(Bit),即該數值乘以2 • >> :右移運算子 • 往右移一個位元(Bit),即該數值除以2 • 譬如:int a=10; • Response.Write(a>>1); // 1010=10102右移一位01012=510 • Response.Write(a<<2); // 1010=10102左移兩位1010002=4010
運算子優先順序和順序關聯性 • 運算式的運算子優先執行先後順序 • 優先順序(Precedence) • 關聯性(Associativity) • 當運算式包含多個運算子時,運算子的優先順序控制評估運算式的順序 • 例如 • 運算式 x + y * z 的評估方式是 x + (y * z) • 因為 * 運算子的優先順序比 + 運算子高。
正號、負號 加、減
練習:計算三角形面積 • 輸入: • 三角形的三邊長 a, b, c • 輸出: • 三角形面積 • 其中 • 提示: • 用 Math.Sqrt() 開根號
Escape Sequence 控制字元 • 在Visual C# 中若欲印出「'」單引號、「"」雙引號或是「\」倒斜線等符號,就必須使用「逸出序列」(Escape Sequence) • 逸出字元(跳脫字元)為預先定義有特殊功能的字元組合
選擇結構 • 按照不同的條件,進行不同的處理。 • if…. else (雙重或單一選擇) • if… else if… else (多重選擇兩種以上) • switch (多重選擇兩種以上)