slide1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
網際網路程式設計 C# 資料型別與流程控制 PowerPoint Presentation
Download Presentation
網際網路程式設計 C# 資料型別與流程控制

Loading in 2 Seconds...

play fullscreen
1 / 107

網際網路程式設計 C# 資料型別與流程控制 - PowerPoint PPT Presentation


  • 195 Views
  • Uploaded on

網際網路程式設計 C# 資料型別與流程控制. 鄧姚文 http://www.ywdeng.idv.tw. 參考書. 李育丞( 2012 ), ASP.NET 網頁資料庫程式設計, 博碩文化股份有限公司, ISBN 978-986-201-628-2 (書號 PG31204 ). 大綱. 認識 C# 的資料型別 學習變數的宣告與使用 學習運算子與運算式的使用 學習 C# 選擇結構語法 學習 C# 重複結構語法 學習 C# 例外處理語法. 程式 的構成 要素. 識別項( Identifier ) 陳述句( Statement )

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about '網際網路程式設計 C# 資料型別與流程控制' - ivory-wilkinson


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide2
參考書

李育丞(2012), ASP.NET網頁資料庫程式設計, 博碩文化股份有限公司, ISBN 978-986-201-628-2 (書號 PG31204)

slide3
大綱

認識C# 的資料型別

學習變數的宣告與使用

學習運算子與運算式的使用

學習C# 選擇結構語法

學習C# 重複結構語法

學習C# 例外處理語法

slide4
程式的構成要素

識別項(Identifier)

陳述句(Statement)

保留字(Reserved Words)、關鍵字(Keywords)

語法(Syntax)

2 1 1
2.1.1 識別項
  • 每一個東西,都要有名字
    • 沒有名字的東西,無法調用
    • 同名同姓造成困擾
  • 識別項
    • 識別字
    • Identifier
slide6
識別項命名規則
  • 第一個字元必須是Unicode的英文字母(大寫或小寫)、底線 _ 字元,可以使用中文字。接在後面的字元可以是英文字母、數字或底線 _ 或中文字。
  • 識別項中間不可以有空白
  • 最大長度限 16,383 個字元。
  • 不要以關鍵字作為識別項。
    • 關鍵字之前加上前置字元 @ 可當作識別項。
    • byte 為關鍵字, @byte 為識別項。
  • 英文字母大小寫視為相異
    • Score 和 score 不同
  • 有效的識別項:_x、isEven、Part9、POOL_SIZE、七十二變
  • 無效的識別項:101Metro(以數字開頭),M&M(中間出現&)、追分 成功(中間有空格)
slide7
陳述式

int m = 1;

int n = 2;

int p = m; m = n; n = p;

  • 陳述式
    • 敘述
    • Statement
    • 高階語言程式中最小的可執行單位
  • 程式(Program)
    • 由一行一行的陳述式組成
  • 陳述式的組成
    • 關鍵字、運算子、變數、常數、運算式等
  • 讀取/執行的方向
    • 由左而右
    • 由上而下
  • 每一行敘述的結尾都以分號「;」結束
statement
分號『;』標示 Statement 的結束,不管它寫成幾行
slide9
關鍵字
  • 關鍵字(Key Word)
  • 保留字(Reserved Word)
    • 對編譯器(Compiler)有特殊意義而預先定義的保留識別項
  • 若萬不得已必須使用關鍵字當作變數,必須在關鍵字最前面加上一個前置字元 @
  • Visual Studio 顯示程式碼時,若關鍵字以藍色標示
slide10
常數與變數
  • 識別項,用於代表資料或物件
  • 常數(Constant)
    • 恆常不變者
  • 變數(Variable)
    • 內容可以改變
constant
常數(Constant)
  • 常值常數(Literal Constant)
    • 文數字常數
  • 符號常數(Symbolic Constant)
literal constant
常值常數(Literal Constant)
  • 程式中的文字與數字
symbolic constant
二. 符號常數(Symbolic Constant)
  • 為某些文字或數字命名
    • 提高可讀性
    • 易於維護
  • 以 const宣告
  • 宣告之後就不可修改或指派新的值
  • 通常以『全部大寫』的英文字母命名
  • 宣告方式:
slide14
一個成績查詢範例:為何要用常數
  • 一個班級60個同學
  • 成績存在檔案裡
    • 檔案格式:一行一個數字,整數沒有小數點,第 1 行是 1 號同學的成績,第 2 行是 2 號同學的成績,其餘依此類推,沒有空號。
  • 成績查詢功能:
    • 輸入座號(1~60號)
    • 輸出成績與評語
      • 評語只有『及格』、『不及格』兩種
      • 成績達 60 分為及格
literal
一個使用 Literal 的解

問題:人數若變成 65 怎麼辦?

visual studio net
Visual Studio .Net 共用整合式開發環境

方案 Solution

專案 Project

一個方案之中可以包含多個專案

variable
變數(Variable)
  • 一個變數代表一個特定的資料項目或值
  • 在記憶體中預留一個位置儲存該項資料
  • 為變數指派一個值之後,該變數會維持該值,一直到指派另一個新值給它為止
slide19
資料型別

整數型別(Integer)

浮點數型別(Floating Point)

decimal 型別(錢)

char 型別(字元)

bool 型別(布林、真假值)

object 型別(物件)

string 型別(字串)

slide20
整數型別

kilo, mega, giga, tera, peta, exa, zetta

slide21
浮點數型別

float ratio = 1.5F

decimal
Decimal 型別

相較於 double,

decimal 有效位數較多,值域較小,適合金融運算。

decimal ratio = 32.25M

slide23
Char 型別

字元採 Unicode 編碼

'A' 是一個字元

'文' 也是一個字元

slide24
Bool 型別

只有 true 和 false 兩個值

bool thisOneIsBigger = thisOne > thatOne;

if (thisOneIsBigger) {

loadLargerOne(thisOne);

} else {

loadLargerOne(thatOne);

}

object
Object 型別

System.Object是一切類別的始祖

string
String 型別

字串採 Unicode 編碼

字串並不僅僅是字元的線性集合

"This is a book"

"這是第一行\n這是第二行\n目前路徑為C:\\Windows"

以 @ 括住的字串常值不處理逸出序列,

適用於Windows檔案名稱:

string fileName = @"c:\data\20091122.txt";

slide27
數值資料
  • 整數(Integer)
    • 十進位26,十六進位 0x1A,八進位032
  • 浮點數(Floating Point)
    • 2300,2.3E3
  • 字元(Character)
    • '文'、'a'、'\u0061'、'\x0061'
  • 字串(String)
    • "電腦"
  • 跳脫字元(Escape Characters)
    • '\n'
slide28
運算子與運算式

P + Q

  • 運算子(Operator)
    • 運算符號
    • 例如: + - * / %
  • 運算元(Operand)
    • 運算的對象
2 4 1
2.4.1 運算子與運算元
  • 運算式( Expression )
    • 又稱為『表示式』
    • 由運算元和運算子構成
    • 例如:
      • a++
      • a – b
      • (a > 0) ? a : -a

一元運算(Unary)

二元運算(Binary)

三元運算(Ternary)

slide30
運算子的分類
  • 算術運算子
  • 指定(複合)運算子
  • 關係運算子
  • 邏輯運算子
  • 合併運算子
  • 移位運算子
slide31
算術運算子

用於數學計算

slide32
算術運算依照優先順序處理
  • 由左而右,先乘除後加減,括弧內的先做
slide33
練習:攝氏溫度轉華氏溫度
  • 輸入:
    • 攝氏溫度 C
  • 輸出:
    • 華氏溫度 F
  • 轉換公式
  • 技術
    • 以 double.Parse() 將字串轉換為數字
slide34
關係運算子

用於比較大小

slide35
邏輯運算子
  • 關係邏輯
    • 真 true
    • 假 false
    • 且 AND &&
    • 或 OR ||
    • 互斥或 XOR ^
    • 否、非 NOT !
slide42
合併運算子
  • + 用於字串為合併,用於數字為加法
slide43
移位運算子
  • 移位運算子用於數值資料,以二進制的方式處理
  • << :左移運算子
    • 往左移一個位元(Bit),即該數值乘以2
  • >> :右移運算子
    • 往右移一個位元(Bit),即該數值除以2
  • 譬如:int a=10;
    • Response.Write(a>>1); // 1010=10102右移一位01012=510
    • Response.Write(a<<2); // 1010=10102左移兩位1010002=4010
slide44
運算子優先順序和順序關聯性
  • 運算式的運算子優先執行先後順序
    • 優先順序(Precedence)
    • 關聯性(Associativity)
  • 當運算式包含多個運算子時,運算子的優先順序控制評估運算式的順序
  • 例如
    • 運算式 x + y * z 的評估方式是 x + (y * z)
    • 因為 * 運算子的優先順序比 + 運算子高。
slide46
練習:計算三角形面積
  • 輸入:
    • 三角形的三邊長 a, b, c
  • 輸出:
    • 三角形面積
    • 其中
  • 提示:
    • 用 Math.Sqrt() 開根號
escape sequence
Escape Sequence 控制字元
  • 在Visual C# 中若欲印出「'」單引號、「"」雙引號或是「\」倒斜線等符號,就必須使用「逸出序列」(Escape Sequence)
  • 逸出字元(跳脫字元)為預先定義有特殊功能的字元組合
slide50
選擇結構
  • 按照不同的條件,進行不同的處理。
  • if…. else (雙重或單一選擇)
  • if… else if… else (多重選擇兩種以上)
  • switch (多重選擇兩種以上)
block
程式區塊 Block
  • 兩行(含)以上陳述式的集合
  • 以 { ... } 括住首尾
  • 在程式區塊內宣告的變數為區域變數,其可用範圍僅限於區塊內
slide56
練習:判斷奇數偶數
  • 輸入:
    • 整數 N
  • 輸出:
    • 若 N 是奇數,則輸出『N 是奇數』
    • 否則輸出『N 是偶數』
  • 指引:
    • 用 int.Parse() 將字串轉換為數字
    • 可以被 2 整除的為偶數
slide65
練習:判斷閏年
  • 輸入
    • 西元年 Y
  • 輸出
    • 若 Y 為閏年,則輸出『Y 是閏年』;否則輸出『Y 不是閏年』
  • 閏年判斷方式
    • 原則:400內年有97次閏年
      • 是4的倍數
      • 非100的倍數
      • 是400的倍數
slide66
練習:判斷三角形的種類並計算三角形面積
  • 三角形三邊長為 a, b, c
  • 其面積 A 為
  • 試寫一程式讀入三角型的三邊長,輸出其面積
  • 檢查輸入之三邊長判斷該三角形的種類
    • a2+b2=c2 直角三角形
    • a2+b2>c2 銳角三角形
    • a2+b2<c2 鈍角三角形
    • a+b<c 無法形成三角形
slide67
重複結構
  • 迴圈(Loop)
    • 要將某部份程式區塊重複執行指定的次數,或是一直執行到條件不滿足為止。
  • 計數器(Counter)
slide69
for 迴圈
  • 計數器控制迴圈陳述式
slide70
for 迴圈
  • for (k=1 ; k<= 5 ; k++) k= 1、2、3、4、5 共執行迴圈內的程式區塊5次。
  • for (k=1 ; k<=5; k+=2) k= 1、3、5 共執行迴圈內的程式區塊3次。
  • for (k=-0.5 ; k<=1.5 ; k+= 0.5) (初值、增值可為小數)k=-0.5、0、0.5、1.0、1.5共執行迴圈內程式區塊5次。
  • for (k=6 ; k>=1 ;k-=2) (增值採遞減)k= 6、4、2 共執行迴圈內的程式區塊3次。
  • 若初值、增值都有兩個以上,中間使用逗號分開:for (x=1, y=5 ; x<3 && y>2 ;x++ , y-- ) x=1 & y=5; x=2 & y=4; 共執行迴圈內的程式區塊2次。
  • for (k=x ; k<=y+9 ;k+=2) (初值和終值可以為運算式)若x=1、y=-2,則k=1,3,5,7共執行迴圈內的程式區塊4次。
  • 無窮迴圈for ( ; ; )
while
while 前測式迴圈
  • 將條件式放在迴圈的最前面
  • 依據條件式的真假來決定是否進入迴圈,若滿足條件就執行迴圈內的程式區塊,然後再回到迴圈最前面的條件式,若還是滿足條件,繼續執行迴圈內的程式區塊,一直到條件不滿足為止
do while
do … while 後測式迴圈
  • 將條件式放在迴圈的最後面
  • 第一次進入迴圈時不用檢查條件式
  • 至少執行一次
slide80
練習:九九乘法表
  • 輸入:無
  • 輸出:
    • 九九乘法表
  • 提示:
    • 以 Response.Write() 輸出 HTML
    • 以 HTML 的 <table> 編排表格
    • 參考:HTML 簡介
slide81
練習:繪製三角形
  • 輸入:三角形高度
  • 輸出:
  • 提示:
    • 以 StringBuilder() 儲存 HTML
    • 以 HTML 的 <table> 編排表格
    • 第 i層印 i個
slide82
練習:繪製三角形
  • 輸入:三角形高度
  • 輸出:
  • 提示:
    • 以 StringBuilder() 儲存 HTML
    • 以 HTML 的 <table> 編排表格
    • 第 i層印
      • (h-i)個空格
      • i個
break continue
break 與 continue
  • break 中斷迴圈執行
  • continue 令迴圈的這一個回合立即結束,進入下一個回合
exception handling
例外處理(Exception Handling)
  • 例外(Exception)
    • 在執行時期(Run-Time)發生的錯誤
  • try、catch、throw、finally
  • 將可能出錯的程式區塊放在 try 區塊內
  • 當 try 區塊內的任何陳述式發生錯誤,一個 Exception 物件會被丟出,由適當的 catch 捕捉
  • 當該 catch 內的程式區塊執行完畢,不再繼續往下執行其他 catch,直接跳到 finally 執行 finally 程式區塊。
  • 若未找到符合的 catch 陳述式,最後也會執行 finally 內的程式區塊
slide99
練習:重量單位轉換台斤 vs公斤

1 台斤等於 0.6 公斤

請寫一個網頁,讓使用者輸入台斤數量,轉換成公斤之後輸出

javascript
用 JavaScript 顯示警訊

Literal1.Text =

@"<script language='javascript'>" +

"alert('數字格式不正確!');" +

"</script>";

varntd = document.getElementById('<%= txtName.ClientID%>');

JavaScript 的 alert() 顯示警訊對話方塊

在 JavaScript 裡面存取 ASP.NET 的文字方塊物件:

bitwise operator or
Bitwise Operator 練習一 OR

Console.Write("請輸入一個二進位數字:");

string line = Console.ReadLine();

int binary = Convert.ToInt32(line, 2);

int mask = Convert.ToInt32("1000", 2);

int result = binary | mask;

Console.WriteLine("設定第四位元後:" +Convert.ToString(result, 2));

將一個整數的第 4 個 bit 設成 1

B & 1 = B

B & 0 = 0

bitwise operator and
Bitwise Operator 練習一 AND

將一個整數的第 4 個 bit 設成 0

B | 1 = 1

B | 0 = B

slide106
練習:列出算式
  • 計算 1+2+3+4+…+N=?
  • 輸入:
    • N 值,必須為自然數 >= 1
  • 輸出
    • 印出算式與總和
    • 例如:1+2+3+4+5+6+7+8+9+10=55
  • 進階練習:
    • 計算等差級數的和,並且印出算式
    • 例如:第一項 A1=4,公差 D=2,共有 N=4項4+6+8+10=28
slide107
練習:換匯美金 vs 新台幣
  • 假設你的角色是台灣銀行的營業員
  • 輸入:
    • 匯率
      • 台灣銀行牌告匯率
        • http://rate.bot.com.tw/Pages/Static/UIP003.zh-TW.htm
    • 台幣金額
  • 輸出
    • 美金金額
  • 進階練習:
    • 如何讓程式自動雙向換算?亦即:輸入新台幣則輸出美金,輸入美金則輸出新台幣。