版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 變數與運算子1 內 容 大 綱變數型別運算子字串變數應用實例2變數 (1/3)變數(variable)是程式語言中用以儲存資料的地方。在Java語言中,在使用變數之前,我們首先必須先針對將要使用的變數加以宣告(declare),以使得Java編譯器可以保留適當的記憶體空間以存放資料。變數的宣告包括給變數一個識別名稱(identification),並描述它存放資料的型別(type)。Example: 型別 變數識別名稱; 3變數 (2/3)識別名稱的命名規則,在此,我們再將此規則整理如下:識別名稱是由一連串英文字母、數字、底線_及錢幣符號$所組成的。識別名稱不可由數字開頭。識別名稱不可包含空
2、白字元。識別名稱可以使用任何語言之字元,包括中文字元。保留字(reserved word)不可以作為識別名稱。4變數 (3/3)變數識別名稱用來指出變數的名稱,而型別則是用以指出變數儲存資料的方式,Java語言有八種型別。5型別(1/6)Java語言一共有八種資料型別(type) byte、short、char、int、long、float、double、boolean,分別可以用以儲存及表示位元組整數、短整數、整數、長整數、浮點數、倍精準度浮點數、布林邏輯值、字元等表3-1一個變數在宣告時,必須指明是使用八種資料型別中的哪一種來存放資料的Example: int 變數1; /宣告用於儲存整數
3、型別資料的變數1 float 變數2; /宣告用於儲存浮點數型別資料的變數2 char 變數3; /宣告用於儲存字元型別資料的變數3 6型別(2/6)有些Java語言的變數是用以儲存類別(class)資料的,它們又稱為樣例變數(instance variable)或是物件(object),此種變數的用法比一般型別變數的用法更為複雜表3-1說明,首先我們看到儲存方式欄位,我們發現byte,short,int及long型別都是使用2的補數(2s complement)表示法儲存資料float及double則利用IEEE 754之浮點數表示法儲存資料另外,每一個宣告之後都必須設定其初始值(initi
4、al value)才可以使用,否則會出現以下之錯誤訊息:Example: Variable 變數 may not have been initialized. 7型別(3/6)在Java語言中使用幾個特別的字母加在數字之後以代表不同的型別Example:在數字之後加上字母l或L代表long型別的數字,在數字之後加上字母f或F代表float型別的數字,而在數字之後加上字母d或D代表double型別的數字。Java語言還要設立一個數值後面加L、l、D、d、F與f的用法呢?以下的範例可以說明其原因:92233727L是正確的數值,而92233727是不正確的數值 8型別(/6)第二個數值因為最後沒有
5、加上L,因此被當作int型別,但是int型別所能表示的最大範圍最大值僅為2147483647而已,第二個數值超過int型別所能儲存的數值範圍,因此是不正確的數值float型別及double型別上,0.0f與0.0d雖然值都是0,但是前者是用32bit浮點數表示的0,而後者是用64bit浮點數表示的0在Java語言中,除了在數字之後加上英文字母以區別其儲存型別之外,也可以在數字之前加上0、0 x或0X來表示不同的數字基底的寫法9型別(5/6)Example-分別為八進位、十六進位及十進位:八進位:若一個數值的開頭為0(零),則此數值是一個八進位數值,例如:0246表示八進位數值246(oct)十
6、六進位:若一個數值的開頭為0 x或0X,則此數值是一個十六進位數值,例如:0 xABCD表示十六進位數值ABCD(hex)十進位:若一個數值不以0、0 x或0X開頭,則此數值是一個十進位數值,例如:123456代表十進位數值123456(dec)char型別採用16位元Unicode編碼法來表示字元 10型別(5/6)字元的用法必須使用配對的單引號( )來表示,例如: A 代表字元 A, + 代表字元 +, 文 代表字元 文。另外,有些字元無法由鍵盤上直接輸入,這些字元必須靠跳脫(escape)符號()來表示,用跳脫(escape)符號()表示的字元請見表3-2。以下我們介紹幾個變數宣告的實例
7、 int 變數1; /宣告屬於整數型別之變數1 int 變數2=123; /宣告屬於整數型別之變數2,並設定其初始值為12311型別(6/6)在Java語言中,等號 (=) 可以用以設定變數的初始值。我們也可以利用逗號(,) 將許多變數在同一個敘述中一起宣告,其中並且可以同時進行初始值設定。如以下的例子:int 變數1,變數2=123,變數3,變數4; /宣告屬於整數型別之變數1、變數2、變數3及變數4 /並同時設定變數2的初始值為12312運算子(1/4)Java語言有四十餘種運算子,在本章中,我們僅先介紹表3-3中與算術運算相關的一些運算子,其餘的運算子則留在後面的章節中再說明。在表3-3
8、中,我們分五組列出Java語言算術運算子,我們這樣做的原因是為了配合各運算子的運算優先順序(precedence),先列出的運算子其運算優先順序較高,而列在同一組的運算子則有相同的優先順序。例如,運算式 1+2*3 優先次序相同的運算則由左而右計算,這稱為運算的左結合的(left associative),有些優先次序相同的運算則由右而左計算,這稱為運算的右結合的(right associative)。13運算子(2/4)例如,我們較為熟悉的加、減、乘、除及模數(求餘數)運算就都是左結合的。Example:運算式 1+2*3%4結果:最終結果3刮號可以改變運算的優先順序,也就是說,不管運算子優
9、先順序為何,刮號中的運算式子一定會優先計算的。運算子+-*/% , 分別代表加法,減法,乘法,除法及模式(求餘數)運算,這些運算可以運用於整數及浮點數上,唯一的不同是整數的運算結果是整數,而浮點數的運算結果是浮點數。14運算子(3/4)計算運算式時,Java語言會自動進行型別轉換。運算式中有浮點數及整數夾雜其中,則整數會自動轉換(cast)為浮點數之後才執行計算,且計算結果為浮點數。運算式中還有倍精準度浮點數,則所有數字更會被轉換為倍精準度浮點數之後才執行計算,且計算結果為倍精準度。Example:運算式 50 / 4 的值為整數12 運算式 50.0 / 4.0 及 50.0/4 及 50/
10、4.0的值均為倍精準度浮點數 12.515運算子(4/4)若運算式中僅有整數類的型別(即byte、char、short及int型別),則所有數字會被轉換為整數之後才執行計算,且計算結果為整數型別。Java語言自動執行型別轉換之外,我們也可以使用型別轉換運算子(請參考表3-3)執行強迫型別轉換Example:運算式 (int)50.3 及 (int)50.01234567 及 (int)50.98765的值均為屬於整數型別的50。例子16字串(1/3)我們要介紹一個用來處理字串的特別類別 String,注意String的第一個字是大寫的,這表示它是一個類別,而不是型別。String是Java語言
11、中非常特別的類別,它的用法有一點類似型別,例如,String類別可以用等號(=)來設定初始值,並且可以使用加號(+)來執行連結(concatenate)運算等一個字串是一個使用配對雙引號包圍起來的一連串的字元,例如,我們在第一章中看到的 歡迎來到Java世界 一個屬於String類別的變數可以使用等號(=)來設定初始值,例如:String 字串1=歡迎來到Java世界; 17字串(2/3)String類別的變數亦可以使用加號(+)來執行連結(concatenation)運算,例如: String 字串1=歡迎來到; String 字串2=Java世界; String 字串3=字串1+字串2;字
12、串在執行連結運算時會自動將非字串類別的項目轉換為字串類別之後再執行連結運算,例如: int 整數=2001; String 字串=今年是公元+整數+年; 18字串(2/3)字串既然是一連串的字元所組成的,因此所有字元都可以出現在字串中,例如: String 字串=“今年是t公元nt2001年nt!”; 變數字串的初始值中即含t及n兩個特別字元若是使用System.out.print(字串); 會在命令視窗中出現以下的結果: 今年是 公元 2001年 !19字串(3/3)因為t代表定位字元,會將列印的位置移動到後方定位點上,在Java語言中定位點是位於8的倍數的位置。另外,n代表換行字元,此字元
13、會使字串換行列印System.out.println這個方法(注意,此方法比System.out.print方法在末尾多了兩個字元ln,ln是line的縮寫)在印完括號中的字串參數之後,會將列印位置移到新的一行(下一行),因此,若緊接著有列印的動作,則列印會從新的一行開始。Example: System.out.print(歡迎來到nJavan世界); 這個敘述與下列三個敘述同義: System.out.println(歡迎來到); System.out.println(Java); System.out.println(世界); 執行結果20變數應用實例(1/2)以下我們以範例程式3-1來作
14、為變數的運用實例,此範例程式檔名為計算.java,其程式碼如下所列:21變數應用實例(2/2)程式說明:22The END23表3-124表3-225表3-326例子計算口袋裡紅包的總金額:主程式裡宣告一個變數,並將之命名為總額,並將此變數的初始值為設為0 = int 總額=0;拜年之後獲得1000元的紅包 =總額=總額+1000;此行敘述會執行設定動作,因為 + 運算子的執行優先順序比 = 運算子高,此敘述會先計算等號右邊的加式,並將計算結果存入等號左邊的變數中。上列敘述也可以用敘述=總額+=1000;總額=總額-600; 此敘述執行之後,變數總額的值會減去600上列敘述也可以用敘述=總額-
15、=600;27例子獲得3倍的彩金,總額=總額*3; 總額*=3;保留原先身上現金總額的四分之一,總額=總額/4; 總額/=4;總額=總額%69; 此敘述中總額%69的意思是求變數總額之值除以69的餘數,這個值恰好可以是齊齊買完Kitty玩偶之後身上還剩餘的現金,等號代表要將總額%69的計算結果存回等號左邊的變數總額中。用一個敘述來將上述 + * / %等五個運算一口氣都表示出來,總額=(總額+1000-600)*3/4%69;遞增及遞減運算子+及-的用法,+及-表示將變數的值往上遞增(加一)或往下遞減(減一)28例子另外,+與-出現在變數的前面與後面也會有不同的結果,例如,下列二個敘述的執行結
16、果是不同的:總額=整數+*4 =總額=整數*4; 整數=整數+1;總額=+整數*4; =整數=整數+1; 總額=整數*4;29執行結果30執行結果31程式說明第4行 4: import javax.swing.JOptionPane;為引進JOptionPane這個類別的敘述,swing類別庫是awt 類別庫的加強版(awt代表abstract window toolkit),自JDK 1.2以後即有提供。swing這個類別庫包括了許多圖形使用者介面(GUI,Graphical User Interface)要用到的類別及方法。例如,swing類別庫中的JOptionPane這個類別提供一些彈
17、出對話方塊(pop up dialog box),可提示使用者輸入資料或顯示一些資訊給使用者看。第5行 5: public class 計算 為類別計算宣告的開始,其中第5行與第24行的大括號配對代表第5行至24行之間為類別定義區塊。 32程式說明第6行 6: public static void main(String 參數)代表main方法定義的開始,其中第6行與第23行的大括號配對代表第6行與第23行之間為main方法的定義區塊。第10行 10: 字串1=JOptionPane.showInputDialog(輸入第一個整數);呼叫JOptionPane類別的showInputDialo
18、g方法,此方法會彈出一個輸入對話方塊(dialog box),如下所示:33程式說明使用者在此對話方塊中填入資料之後再接OK按鍵,則使用者填入的資料會以字串的方式隨著showInputDialog方法傳回,因此,字串1中會存有使用者於輸入對話方塊中鍵入的字串。第12行 12: 數1=Integer.parseInt(字串1);會將字串1的字串轉為相對的整數值,並存入變數數1。Integer是一個Java內建類別,屬於java.lang類別庫,java.lang這個類別庫裡有許多Java語言基本的類別,這些基本類別會自動引入每一個Java程式中,而不必再使用import敘述引入。Intger類別對應基本型別int注意,Intger類別的第一個字母為大寫,而int型別的第一個字母為小寫。 34程式說明第14至18行,則分別使用+,-,*,/及%等
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年宁波市升力同创科技咨询服务有限公司招聘备考题库及答案详解一套
- 高中语文课堂数字化教学任务智能分配对学生文学素养的影响教学研究课题报告
- 浙商银行金华分行2025年四季度社会招聘备考题库及完整答案详解一套
- 2025年长沙市长沙星沙街道盼盼幼儿园教师招聘备考题库有答案详解
- 小学道德与法治六年级下册4.8 科技发展 造福人类 第二课时 课件内嵌视频
- 2025年独山县百泉镇村(社区)后备干部招募备考题库及答案详解一套
- 简约文艺风白色家居产品手册
- 2025年贵州翎航拓达科技有限公司招聘备考题库及完整答案详解一套
- AI训练设备姿态传感器集成训练系统开发课题报告教学研究课题报告
- 初中数学教学中探究式学习的策略研究与应用教学研究课题报告
- 《市场营销专业申报》课件
- 三年级数学上册 (提高版)第8章《分数的初步认识》单元培优拔高测评试题(教师版含解析)(人教版)
- 19计科机器学习学习通超星期末考试答案章节答案2024年
- 全国职业院校技能大赛赛项规程(高职)农产品质量安全检测
- DB51∕T 3179-2024 杵针技术操作规范
- 专利共同申请合同模板(2024版)
- 国开机考答案21-人文英语1(闭卷)
- AQ∕T 7009-2013 机械制造企业安全生产标准化规范
- MOOC 近代物理实验-西南大学 中国大学慕课答案
- 教科版三年级科学上册课件《运动和位置》
- 河北省部分地区2023-2024学年度高二上学期期末考试英语试题(解析版)
评论
0/150
提交评论