版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第6章 運算式與運算子算術與多功能計算機l6-1 運算式的基礎l6-2 visual basic的運算子l6-3 算術與連接運算子l6-4 比較與邏輯運算子l6-5 運算式的資料型態轉換l6-6 例外處理6-1 運算式的基礎l6-1-1 運算式簡介l6-1-2 運算式的種類6-1-1 運算式簡介-說明l運算式(expressions)是由一序列的運算子(operators)和運算元(operands)組成,可以用來在程式中執行所需的運算任務。6-1-1 運算式簡介-範例l 一些visual basic語言的運算式範例,如下所示:6-1-1 運算式簡介-如何執行運算l 當同一個運算式擁有超過一個
2、運算子時,運算式的執行結果會因運算子的執行順序而不同。例如:一個數學運算式,如下所示:6-1-1 運算式簡介-優先順序(precedence)l一般來說,程式語言提供多種不同的運算子,在同一個運算式如果使用多個運算子時,為了讓運算式能夠得到相同的運算結果,運算式是以運算子預設的優先順序來進行運算,也就是我們所熟知的先乘除後加減口訣,如下所示:6-1-1 運算式簡介-結合(associativity)l運算式的運算子都擁有相同優先順序時,運算子的執行順序是由結合(associativity)決定。結合分為兩種,如下所示:6-1-2 運算式的種類-16-1-2 運算式的種類-26-2 visual
3、 basic的運算子l6-2-1 運算子的種類l6-2-2 運算子的優先順序l6-2-3 在運算式使用括號6-2-1 運算子的種類l 算術運算子(arithmetic operators):執行常見數學運算的加、減、乘和除法等數值運算。l 比較運算子(comparison operators):執行兩個運算元的大於、等於、小於、大於等於和小於等於的運算,可以傳回布林值true或false。l 字串連接運算子(concatenation operators):可以連接多個字串成為一個字串,每一個字串是連接在前一個字串的最後。l 邏輯運算子(logical operators):可以連接比較運算式
4、來建立更複雜的條件運算式。6-2-2 運算子的優先順序-規則l 運算式預設依其出現順序,由左到右依序的執行運算,其優先順序規則,如下所示:6-2-2 運算子的優先順序-優先順序l visual basic語言運算子的預設優先順序,愈前面的列;其優先順序愈高,如下表所示:運算子運算子說明說明指數+、-正號、負號*、/乘法、除法整數除法mod餘數+、-加法、減法&連接=、=、is、isnot、like等於、不等於、小於、小於等於、大於、大於等於、物件比較、字串範本比較notnot 非運算and、andalsoand 且運算or、orelseor 或運算xorxor 運算6-2-2 運算子的
5、優先順序-結合規則l當運算式的運算子擁有相同的優先順序時,visual basic語言是使用左右結合(left-to-right associativity)來執行d + c + e的運算,先計算d + c等於r後,計算r+e的值。6-2-3 在運算式使用括號-括號運算式(parenthetical expressions)l在運算式中擁有超過2個運算子時,我們才可能使用括號來改變運算順序,例如:一個擁有乘法和加法運算子的算術運算式,如下所示:6-2-3 在運算式使用括號-巢狀括號運算式(nested parenthetical expressions)l在運算式的括號中可以擁有其他括號,稱為
6、巢狀括號,此時在最內層的括號擁有最高的優先順序,然後是其上一層,直到得到最後的運算結果,如下所示:6-3 算術與字串連接運算子l6-3-1 算術運算子l6-3-2 使用數學公式建立運算式6-3-1 算術運算子-種類lvisual basic語言提供多種算術運算子來執行數學運算,其說明與範例如下表所示:運算子運算子說明說明運算式範例運算式範例指數6 2 = 36-負號-17+正號+17*乘法15 * 6 = 90/除法7 / 2 = 3.5整數除法7 2 = 3mod餘數7 mod 2 = 1+加法14 + 3 = 17-減法14 3 = 116-3-1 算術運算子-取得textbox控制項輸入
7、的數值l在windows應用程式通常是使用textbox控制項來取得使用者輸入的變數值,因為預設資料型態是字串,所以,我們需要使用資料型態轉換函數來轉換成數值,如下所示:6-3-1 算術運算子-visual basic專案l在windows應用程式使用2個textbox控制項輸入運算元的值後,使用算術運算子在label標籤控制項顯示計算結果。其執行結果如下圖所示:6-3-2 使用數學公式建立運算式-說明l數學公式可以轉換成算術運算式,建立visual basic應用程式來解決數學問題。l例如:華氏(fahrenheit)和攝氏(celsius)溫度的轉換公式。首先是攝氏轉華氏的公式,如下所示:
8、6-3-2 使用數學公式建立運算式-visual basic專案l在windows應用程式使用數學公式來建立算術運算式,可以計算bmi值,和轉換攝氏或華氏溫度。其執行結果如下圖所示:ville 1.3 數學公式建立運算式l 請啟動ville,在【一. 變數與運算子】目錄下,選【3. 數學公式建立運算式】,按【run】鈕模擬執行此範例程式,如下圖所示:6-3-3 字串連接運算子-說明l如果運算元是string字串資料型態,在visual basic語言提供運算子可以連接字串內容,其說明和範例如下所示:運算子運算子說明說明運算式範例運算式範例&字串連接abc & de = abcd
9、e6-3-3 字串連接運算子-visual basic專案l這個windows應用程式和上一節的專案相同,只是在計算bmi值時,除了輸出計算結果外,還加上說明字串。其執行結果如下圖所示:6-3-4 再談指定敘述l 在visual basic語言除了使用=等號建立指定敘述外,還可以配合其他運算子來簡化運算式的撰寫,建立更簡潔的算術運算式,如下表所示:運算子運算子範例範例相當的運算式相當的運算式說明說明=x = yn/a指定敘述=x = yx = x y指數+=x += yx = x + y加法-=x -= yx = x - y減法*=x *= yx = x * y乘法/=x /= yx = x
10、/ y除法=x = yx = x y整數除法&=x &= yx = x & y字串連接6-4 比較與邏輯運算子l6-4-1 比較運算子l6-4-2 邏輯運算子6-4-1 比較運算子l 比較運算子沒有優先順序的分別,通常是使用在迴圈和條件敘述作為判斷條件,運算結果是布林值的true或false,其說明和範例如下表所示:運算子運算子說明說明運算式範例運算式範例結果結果=等於16 = 13false不等於16 13true小於16 大於16 13true=小於等於16 =大於等於16 = 13trueis物件比較比較 2 個變數是否指向同一個物件isnot物件比較比較 2 個
11、變數是否指向不同的物件like字串比較使用範本字串來進行字串的比較6-4-2 邏輯運算子-種類l 在迴圈和條件敘述的判斷條件如果不只一個,我們需要使用邏輯運算子來連接多個比較運算式,其說明如下表所示:運算子運算子說明說明not非,傳回運算元相反的值,通常是配合運算式的布林值來取得相反值and且,連接的 2 個運算元都為 true,則運算式為 trueor或,連接的 2 個運算元中,任一個為 true,則運算式為 true;否則為 falsexor連接的 2 個運算元中,只有一個運算元為 true,而且 2 個運算元不同時為 true,則運算式為 true;否則為 falseandalso連接的
12、 2 個運算元都為 true 才為 true , 如果第 1 個運算元已經 false,就不用計算第 2 個運算元,傳回 falseorelse連接的 2 個運算元中 , 任一個為 true , 則運算式為 true ; 否則為 false,如果第 1 個為 true,就不用計算第 2 個運算元,傳回 true6-4-2 邏輯運算子-範例l 對於複雜的比較運算式可以使用邏輯運算子連接,一些實際的運算式範例,如下表所示:邏輯運算子邏輯運算子運算式範例運算式範例結果結果not anot (25 23)falsenot bnot (14 23 and 14 23 or 14 23 xor 14 23
13、 andalso 14 23 orelse 14 = 12true,以此例第 2 個運算元根本不用計算6-5 運算式的資料型態轉換l6-5-1 隱含型態轉換l6-5-2 明顯型態轉換6-5 運算式的資料型態轉換l 資料型態轉換(type conversions)是因為同一個運算式可能有多個不同資料型態的變數或字面值。例如:在運算式擁有整數和浮點數的變數或字面值時,就需要執行型態轉換。l 資料型態轉換是指轉換變數儲存的資料,而不是變數本身的資料型態,因為不同型態佔用的位元組數不同,所以在進行資料型態轉換時。例如:double轉換成single,變數資料有可能損失資料或精確度。6-5-1 隱含型態
14、轉換-說明l 隱含型態轉換(implicit conversions)並不需要特別語法,在運算式或指定敘述兩端,如果有不同型態的變數,就會將儲存資料自動轉換成相同的資料型態。l 在指定敘述右邊運算式的結果會自動轉換成與左邊變數相同的資料型態。一些運算式範例和說明,如下表所示:運算式運算式結果結果說明說明250 + 125375算術運算子加號的字串會轉換成數值250 & 125250125字串連接運算子的數值會轉換成字串250 + 125250125 因為運算元都是字串,所以加號變成字串連接運算子6-5-1 隱含型態轉換-visual basic專案l這個windows應用程式是直接使用
15、第5-4-1節的【我的主控台程式】,可以建立運算式來測試隱含型態轉換。其執行結果如下圖所示:6-5-2 明顯型態轉換-說明l隱含型態轉換對於程式設計者來說,並不需要任何額外處理。不過,因為是自動轉換,有時可能造成未知的型態轉換錯誤。例如:上一節範例程式,如果準備將字串轉換成整數後再相加,運算式num=str1+str2結果的值應該是375,而不是250125。l明顯型態轉換(explicit conversions)是在進行運算前,自行使用資料型態轉換函數來轉換成相同的資料型態。6-5-2 明顯型態轉換-資料型態轉換函數函式名稱函式名稱傳回型態傳回型態範例範例結果結果cbool(stmt)bo
16、oleancbool(5 = 5)truecbyte(stmt)bytecbyte(125.89)126cchar(stmt)charcchar(bced)bchrw(exp)charchrw(65)acdate(stmt)datecdate(2010/01/24)cdate(4:35:47 pm)2010/1/24下午 04:35:47cdbl(stmt)doublecdbl( 234.56789d)234.56789cdec(stmt)decimalcdec(1234567.0587)1234567.0587cint(stmt)integercint(2345.678)2346clng(s
17、tmt)longclng(15427.45)clng(15427.55)1542715428cshort(stmt)shortcshort(100)100csng(stmt)singlecsng(85.3421105)csng(85.3421567)85.3421185.34216cstr(stmt)stringcstr(537.324)cstr(#2010/12/19#)cstr(#2/12/2010 12:00:01am#)537.3242010/12/192010/2/12 上午12:00:016-5-2 明顯型態轉換-明顯型態轉換l當運算式或指定敘述兩端的資料型態不相同時,就可以使用上
18、表函數自行轉換成相同資料型態,如下所示:6-5-2 明顯型態轉換-visual basic專案l 這個windows應用程式是直接使用第6-5-1節的【我的主控台程式】,可以建立運算式來測試明顯型態轉換,對於不同型態的變數,需要自行使用型態轉換函數來轉換型態。其執行結果如下圖所示:6-6 例外處理-說明l例外處理是指在程式執行時,如果發生不正常執行狀態時,我們可以在程式碼處理這些錯誤。例外處理的目的是為了讓程式能夠更強壯(robust)。當程式遇到不尋常情況,也不會造成程式崩潰(crashing),進而導致整個系統當機的情況。6-6 例外處理-語法l visual basic語言提供結構化的例外處理程式敘述,即try/end try,其語法如下所示:6-6 例外處理-語法說明l例外處理敘述可以分為三個部分,其說明如下表所示:程式區塊程式區塊說明說明try在 try 和 catch 關鍵字間的程式區塊是 visual basic 需要執行
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二四年度原料采购与技术转让合同3篇
- 护理养生保健课件
- 2024年产品订购协议(含物料)3篇
- 2024年度路灯设施检修及优化服务协议版
- 2024年企业员工合同样本6篇
- 2024年农产品供应协议:新鲜蔬菜供货合同2篇
- 2024服务合同(养老机构)
- 2024年专业育儿嫂服务协议版B版
- 2024工程承包合同样本
- 2024年住宅装修定制协议2篇
- 呼吸系统测试题(含参考答案)
- 2024秋期国家开放大学《可编程控制器应用实训》一平台在线形考(形成任务1)试题及答案
- 第三单元 长方形和正方形(单元测试)-2024-2025学年三年级上册数学苏教版
- 八上16《永久的生命》《我为什么而活着》 整合公开课一等奖创新教学设计
- 电力设备预防性试验规程
- 能源数字化转型典型实践案例集(2024年)
- 山东师范大学成人教育《文献学》期末考试题库
- 2023年中老年市场白皮书
- GB/T 44312-2024巡检机器人集中监控系统技术要求
- 辽宁省名校联盟2024-2025学年高二上学期9月联合考试模拟练习数学试题
- 敦煌莫高窟完整版本
评论
0/150
提交评论