Java語言程序設計基礎教程課件(第2章)課件_第1頁
Java語言程序設計基礎教程課件(第2章)課件_第2頁
Java語言程序設計基礎教程課件(第2章)課件_第3頁
Java語言程序設計基礎教程課件(第2章)課件_第4頁
Java語言程序設計基礎教程課件(第2章)課件_第5頁
已閱讀5頁,還剩52頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、Java語言程序設計基礎教程課件(第2章)第第2章章Java基本的程序設計結構基本的程序設計結構 n標識符和關鍵字標識符和關鍵字 nJava的基本數據類型的基本數據類型 n運算符、表達式和語句運算符、表達式和語句 n語句語句 n輸入輸出輸入輸出 n數組數組 Java語言程序設計基礎教程課件(第2章)2.1 標識符和關鍵字標識符和關鍵字 n在Java中的標識符和關鍵字統稱為保留字。 Java語言程序設計基礎教程課件(第2章)2.1.1 標識符 n標識符是賦予常量、變量、方法、類或者接口的名稱,可以由用戶自行定義,無長度限制,但要符合以下規則:q1、標識符可以由一個或多個字符組成q2、標識符必須以

2、字母、下劃線_或$為開頭,后面可以包含數字、字母但不包含空格。q3、標識符中大小寫字母有區別,但長度沒有限制q4、關鍵字不能做為標識符使用q5、用以命名類、方法和變量、以及包遵守JAVA的命名規范,類名稱的每個單詞都以大寫字母開頭。方法和變量第一個字母不大寫,其他照舊。 Java語言程序設計基礎教程課件(第2章)2.1.2 關鍵字 nJava中的關鍵字,它是Java特意保留的,具有特殊的意義和用途,不可以任意使用或更改,當我們在編寫程序時要注意不要使用它作為變量或方法名稱,以免造成程序編譯的錯誤。nJava的關鍵字有:qAbstract、default、if、package、this、Bool

3、ean、do、implements、private、throw、Break、double、import、protected、throws、Byte、else、instanceof、public、transient、Case、false、interface、short、try、Catch、final、long、static、void、Char、finally、native、super、volatile、 Class、float、new、switch、while、Continue、for、null、synchronized。ngoto和const在Java中雖然不再使用,但是還作為關鍵字存在。 J

4、ava語言程序設計基礎教程課件(第2章)2.2 Java的基本數據類型 nJava嚴格規定每個數據類型的大小,而且不允許任意更換變量的數據類型。也就是說如果A變量我們聲明為整數類型后,就不能再將A變量改為其它類型,而且所占的空間就是32位,無法更改。Java語言程序設計基礎教程課件(第2章)表2-1 Java的基本數據類型 類型內容默認值內存空間取值范圍booleantrue/falsefalse16位true或falsecharUnicodeu000016位u0000-uFFFFbyte整數08位-128+127short整數016位-32768+32767int整數032位-2147483

5、648+2147483647long整數064位-92233728+92233727float浮點0.032位3.40282347E+381.40239846E-45double浮點0.064位1.797693E+3084.946544E-324Java語言程序設計基礎教程課件(第2章)2.2.1 布爾型 n布爾型,也就是我們所說的真或假,使用關鍵字boolean來定義邏輯變量,值為常量:true、false。 n【例2-1】一個布爾型應用的示例。q定義了一個布爾類型變量y,起初給它賦值false,然后又賦值為true,在if條件判斷中,因為y是true,條件滿足,執行語句所以執行System

6、.out.println(y is true);,最后是一個表達式109,結果為真,所以顯示true。 Java語言程序設計基礎教程課件(第2章)npublic class BoolTest npublic static void main(String args) nboolean y;ny = false;nSystem.out.println(y is + y);ny = true;nif (y) nSystem.out.println(y is true);nnSystem.out.println(109? + (10 9);nn Java語言程序設計基礎教程課件(第2章)2.2.2

7、字符型 n字符型在C語言中占8位,而Java中由于使用的是unicode,所以占16位。n【例2-2】舉個例子說明一下字符型數據的使用。qpublic class CharDemo qpublic static void main(String args) qchar ch1, ch2;qch1 = 65;qch2 = B;qSystem.out.print(ch1 and ch2);qSystem.out.println(ch1 + + ch2);qqJava語言程序設計基礎教程課件(第2章)n大寫的A在ASCII字符集中的值為65,因為ASCII中的字符集占了Unicode中的前127個字

8、符,所以ASCII中的技巧這里面一樣用。從上面可以看出,給字符型變量ch1賦值65和A作用是一樣的。程序2-2運行結果如下所示。 圖2-2 字符型數據應用示例運行結果 Java語言程序設計基礎教程課件(第2章)2.2.3 整數型 nJava定義了四種整數型,即字節型(byte),短整型(short),整型(int),長整型(long)。在Java語言中沒有無符號這個關鍵字(unsigned),這個有區別于C語言,也就是說所有的數都為有符號數。 Java語言程序設計基礎教程課件(第2章)2.2.4 浮點型 n浮點型,也就是所說的實數,其中單精度數float占4個字節,雙精度數占8個字節,當需要保

9、持多次反復迭代的計算的精確性時或操作值很大時,是最好的選擇了。n【例2-4】下面例子是一個雙精度數計算圓面積的例子。q/計算圓的面積qpublic class Area qpublic static void main(String args) qdouble pi, r, a;qr = 0.3; /半徑qpi = 3.1416;qa = pi * r * r; /面積qSystem.out.println(面積為: + a);qq Java語言程序設計基礎教程課件(第2章)2.2.5 基本數據類型的轉換 n在Java中類型由低到高的順序為:byte、short、char、int、long、f

10、loat、double。n1、自動轉換:當由低到高時可以自動轉換,比如:qbyte b;int i=b;long l=b;float f=b;double d=b;q那么這些都可以自動轉換,是合法的,但byte、short、char是平級的不能自動轉換,必須使用強制轉換。n2、強制轉換:由高級到低級時,必須使用強制轉換。qint i=99;byte b=(byte) i;char c=(char) i;Java語言程序設計基礎教程課件(第2章)n【例2-5】下面例子說明這兩種轉換。qpublic class ChangeTest qpublic static void main(String

11、args) qbyte b = 15;qint i = b;qlong l = b;qfloat f = b;qdouble d = b;qSystem.out.println(b);qSystem.out.println(i);qSystem.out.println(l);qSystem.out.println(f);qSystem.out.println(d);qint s = 99;qbyte n = (byte) s;qSystem.out.println(s);qSystem.out.println(n);qq注意注意:在強制轉換時有時會導致溢出或降低精度,比如整型值賦給byte時,

12、如果整型值大了,會自動取模再賦值,而浮點數賦值給整數時會去掉小數點。 Java語言程序設計基礎教程課件(第2章)n3、字符串型數據與其他數據類型轉換:在Java中是通過toString()方法來實現的。n【例2-6】字符串型數據與其他數據類型轉換的例子。qpublic class ChangeTest1 qpublic static void main(String args) qint i1 = 10;qfloat f1 = 3.14f;qdouble d1 = 3.1415926;q/注意大小寫qInteger I1 = new Integer(i1); /生成integer類qFloat

13、 F1 = new Float(f1); / 生成float類qDouble D1 = new Double(d1); /生成double類q/分別調用包裝類的tostring()方法轉換為字符串qString si1 = I1.toString(); /toString在此完成integer類型轉換為字符串qString si2 = F1.toString();qString si3 = D1.toString();qSystem.out.println(si1);qSystem.out.println(si2);qSystem.out.println(si3);qqJava語言程序設計基礎

14、教程課件(第2章)n4、將CHAR型值直接做為數值轉換為其他數據類型n【例2-7】CHAR型值直接做為數值轉換為其他數據類型的例子。qpublic class ChangeTest2 qpublic static void main(String args) qint i;qchar c1 = A;qi = c1;qSystem.out.println(i);qchar c2 = (char) (i + 2); / 此處要強制轉換qSystem.out.println(c2);qqJava語言程序設計基礎教程課件(第2章)2.3 運算符、表達式 nJava提供了豐富的運算符,如算術運算符、關系

15、運算符、邏輯運算符、位運算符等。Java語言程序設計基礎教程課件(第2章)2.3.1算術運算符與算術表達式 n在Java中提供運算功能的就是運算符(Operator),例如與算術相關的有加(+)、減(-)、乘(*)、除(/)這類的運算符。另外還有一個也很常用的取模運算符(%)。這類以數學運算為主的運算符稱為算術運算符(Arithmetic Operator)。 n算術運算符的使用基本上與加減乘除一樣,也是先乘除后加減,必要時加上括號表示運算的先后順序。 Java語言程序設計基礎教程課件(第2章)2.3.2比較和條件運算 n數學上有比較的運算,像大于、等于、小于等運算,Java中也提供了這些運算

16、符,這些運算符稱為“比較運算符”(Comparison Operator)。它們有大于()、大于等于(=)、小于()、小于等于( 5 結果 + (10 5);nSystem.out.println(10 = 5 結果 + (10 = 5);nSystem.out.println(10 5 結果 + (10 5);nSystem.out.println(10 = 5 結果 + (10 = 60 ? 是 : 否);nnJava語言程序設計基礎教程課件(第2章)2.3.3邏輯和位運算 nJava中也提供這幾個基本邏輯運算所需的邏輯運算符(Logical Operator),分別為與(&)、或

17、(|)和取反(!)3個運算符。 n【例2-11】下面是邏輯和位運算的示例。qpublic class LogicalOperator qpublic static void main(String args) qint number = 75;qSystem.out.println(number 70 & number 80 | number 80 | number 75);qqJava語言程序設計基礎教程課件(第2章)2.3.4遞增和遞減運算 n遞增(Increment)、遞減(Decrement)與賦值(Assignment)運算符,這幾種運算符的目的除了讓程序看來比較簡潔之外,還

18、可以稍微增加一些程序執行的效率。n在程序中對變量遞增1或遞減1是很常見的運算,例如:qint i = 0; qi = i + 1; qSystem.out.println(i); qi = i - 1; qSystem.out.println(i);n上面這段程序會分別顯示變量+1與-1操作的結果,1與0兩個數, Java語言程序設計基礎教程課件(第2章)【例2-16】遞增、遞減運算符的示例。 npublic class IncrementDecrement npublic static void main(String args) nint i = 0;nSystem.out.println

19、(+i);nSystem.out.println(-i);nnJava語言程序設計基礎教程課件(第2章)2.3.5賦值運算符 n到目前為止,只學習過一個賦值運算符,也就是=這個運算符,事實上賦值運算符還有其他幾個,如表2-2所示。 賦值運算符范例結果+=a+=ba=a+b-=a-=ba=a-b*=a*=ba=a*b/=a/=ba=a/b%=a%=ba=a%b&=a&=ba=a&b|=a|=ba=a|b=a=ba=ab=a=ba=a=a=ba=ab表2-2 賦值運算符 Java語言程序設計基礎教程課件(第2章)2.4語句 在Java語言中,語句可分為以下5類:n1方法調用

20、語句方法調用語句qSystem.out.println(“Hello”);n2表達式語句表達式語句q由一個表達式構成一個語句,最典型的是賦值語句,如:x = 23;q一個表達式加上一個分號就構成了一個語句,分號是語句不可缺少的部分。n3復合語句復合語句q可以用把一些語句括起來構成復合語句,如:q z = 23 + x;qSystem.out.println(“Hello”);n4控制語句控制語句q包括條件語句和switch開關語句。n5package語句和語句和import語句語句qPackage語句和import語句與類、對象有關,相關內容在第3章中介紹。 Java語言程序設計基礎教程課件(

21、第2章)2.4.2 控制語句 nJava的控制語句有2種類型,即條件語句和switch開關語句。 n1條件控制語句條件控制語句q為了解決“如果”發生了,就要的需要,Java提供了if條件控制語句。它的語法如下:qif(條件式)q 語句1;qelseq 語句2;Java語言程序設計基礎教程課件(第2章)n如果在if后有兩個以上的語句,稱之為復合語句(Compound Statement),此時必須使用 定義程序塊(Block)將復合語句包括起來。例如:qif(條件式) q 語句1;q 語句2; qqelse q 語句3;q 語句4;qJava語言程序設計基礎教程課件(第2章)【例2-19】使用i

22、f條件式來判斷使用者的輸入是奇數還是偶數。 nimport java.util.Scanner;npublic class OddDecider3 npublic static void main(String args) nScanner scanner = new Scanner(System.in);nSystem.out.print(請輸入數字: );nint input = scanner.nextInt();nint remain = input % 2; / 求除 2 的余數nif (remain = 1) / 如果余數為1nSystem.out.println(input +

23、為奇數);nelsenSystem.out.println(input + 為偶數);nnJava語言程序設計基礎教程課件(第2章)2switch 條件式條件式 nswitch只能比較數值或字符,使用適當的話,可比if判斷式有效率。switch的語法結構如下:qswitch(變量名稱或表達式) q case 符合數字或字符:q 語句1;q break;q case 符合數字或字符:q 語句2;q break;q default:q 語句3; q Java語言程序設計基礎教程課件(第2章)【例2-21】使用switch來改寫處理學生的成績等級問題。 nimport java.util.Scann

24、er;npublic class ScoreLevel2 npublic static void main(String args) nScanner scanner = new Scanner(System.in);nSystem.out.print(請輸入分數: );nint score = scanner.nextInt();nint level = (int) score / 10;nswitch (level) ncase 10:ncase 9:System.out.println(得A);nbreak;ncase 8:System.out.println(得B);nbreak;nc

25、ase 7:System.out.println(得C);nbreak;ncase 6:System.out.println(得D);nbreak;ndefault:System.out.println(得E(不及格);nnnJava語言程序設計基礎教程課件(第2章)2.4.3 循環語句 n1for循環循環 n在Java中如果要進行重復性的指令執行,可以使用for循環式。它的基本語法如下:qfor(初始式; 判斷式; 遞增式) q 語句1; q 語句2; q n如果語句只有一個,也就是非復合語句, 可以省略不寫。for循環的第一個初始語句只會執行一次,之后每次重新進行循環時,都會根據判斷式來判

26、斷是否執行下一個循環,而每次執行完循環之后,都會執行遞增式。Java語言程序設計基礎教程課件(第2章)【例2-22】for循環的功能示例。 npublic class SimpleLoopFor npublic static void main(String args) nfor (int i = 0; i 10; i+)nSystem.out.print( + i);nnJava語言程序設計基礎教程課件(第2章)2while循環循環 nJava提供while循環式,它可以根據所指定的條件式來判斷是否執行循環體。語法如下:qwhile(條件式) q 語句1; q 語句2; q Java語言程序

27、設計基礎教程課件(第2章)【例2-25】計算輸入成績平均的程序。 nimport java.util.Scanner;npublic class ScoreAverage npublic static void main(String args) nScanner scanner = new Scanner(System.in);nint score = 0;nint sum = 0;nint count = -1;nwhile (score != -1) ncount+;nsum += score;nSystem.out.print(輸入分數(-1結束):);nscore = scanner

28、.nextInt();nnSystem.out.println(平均: + (double) sum / count);nnJava語言程序設計基礎教程課件(第2章)2.4.4 break和continue nbreak可以離開當前switch、for、while、do while的程序塊,并前進至程序塊后下一條語句,在switch中主要用來中斷下一個case的比較。在for、while與do while中,主要用于中斷目前的循環執行,break的例子之前已經看過不少,這里不再舉例。ncontinue的作用與break類似,主要用于循環,所不同的是break會結束程序塊的執行,而continu

29、e只會結束其之后程序塊的語句,并跳回循環程序塊的開頭繼續下一個循環,而不是離開循環。 Java語言程序設計基礎教程課件(第2章)n例如:nfor(int i = 1; i 10; i+) n if(i = 5)n break;n System.out.println(i = + i); nn這段程序會顯示i = 1到4,因為當 i 等于5時就會執行break而離開循環。 Java語言程序設計基礎教程課件(第2章)n看下面這個程序:nfor(int i = 1; i 10; i+) n if(i = 5)n continue;n System.out.println(i = + i); n n這

30、段程序會顯示1到4,與6到9。當 i 等于5時,會執行continue直接結束此次循環,這次循環中System.out.println()行并沒有被執行,然后從程序塊開頭執行下一次循環,所以5并沒有被顯示。Java語言程序設計基礎教程課件(第2章)2.5輸入輸出n1)利用System.out.println(),可以非常容易實現輸出 n【例2-29】一個輸出的例子。qpublic class OutputTest qpublic static void main(String args) qfloat x;qx = 100.0f / 3.0f;qSystem.out.println(x);qS

31、ystem.out.println(100.0 / 3.0);qqJava語言程序設計基礎教程課件(第2章)n2)格式化輸出n在java.text包中,提供了NumberFormat類可以產生這種格式,然后我們再用format方法來得到格式化的字符。 Java語言程序設計基礎教程課件(第2章)【例2-30】一個格式化輸出的例子。 nimport java.text.*;npublic class OutputTest1 npublic static void main(String args) n double x;n x = 100.0 / 3.0;n NumberFormat f1 = N

32、umberFormat.getNumberInstance();/ 數字格式n String s = f1.format(x);n System.out.println(s);n NumberFormat f2 = NumberFormat.getPercentInstance();/ 百分比格式n s = f2.format(x);n System.out.println(s);n NumberFormat f3 = NumberFormat.getCurrencyInstance();/ 貨幣格式,這跟系統區域有關n s = f3.format(x);n System.out.printl

33、n(s);nnJava語言程序設計基礎教程課件(第2章)n3)鍵盤輸入n【例2-31】一個鍵盤輸入的例子。qimport javax.swing.*;qpublic class InputTest qpublic static void main(String args) qString name = JOptionPane.showInputDialog(please input you name:);qString input = JOptionPane.showInputDialog(please input you age:);qint age = Integer.parseInt(i

34、nput);qSystem.out.println(your name: + name + you age: + age);qSystem.exit(0);qqJava語言程序設計基礎教程課件(第2章)2.6 數組 n2.6.1數組的概念n數組(Array)是一組相同數據類型數據的有序集合。在Java語言中數組元素可以由簡單數據類型組成也可以由對象組成。數組中的每個元素都具有相同的數據類型,可以用一個統一的數組名和一個下標來唯一地確定數組中的元素。 Java語言程序設計基礎教程課件(第2章)n數組主要具有下面的特點:q數組是相同數據類型的元素的集合。q數組中的各元素是有先后順序的,在內存中按照

35、這個先后順序連續存放在一起。q數組元素用整個數組的名字和其在數組中的順序位置來表示。如a0表示名字為a的數組中的第一個元素,a1表示數組a中的第二個元素。q從數組的構成形式上看,可將其分為一維數組和多維數組。Java語言程序設計基礎教程課件(第2章)2.6.2一維數組n1 一維數組的定義qtype arrayName ; q類型(type)可以為Java中任意的數據類型,包括簡單類型和復合類型。 例如: qint intArray ;qDate dateArray;n2 一維數組的初始化 q 靜態初始化 nint intArray=1,2,3,4; nString stringArray=ab

36、c, How, you; Java語言程序設計基礎教程課件(第2章)n 動態初始化 n1)簡單類型的數組 qint intArray; qintArray = new int5; n2)復合類型的數組 qString stringArray ; qString stringArray = new String3; /為數組中每個元素開辟引用空間(32位)qstringArray0= new String(How); /為第一個數組元素開辟空間 qstringArray1= new String(are); /為第二個數組元素開辟空間 qstringArray2= new String(you)

37、; / 為第三個數組元素開辟空間 Java語言程序設計基礎教程課件(第2章)n3一維數組元素的引用 n數組元素的引用方式為:qarrayNameindex qindex為數組下標,它可以為整型常數或表達式,下標從0開始。每個數組都有一個屬性length指明它的長度,例如:intArray.length指明數組intArray的長度。 Java語言程序設計基礎教程課件(第2章)2.6.3多維數組nJava語言中,多維數組被看作數組的數組。 n1二維數組的定義 qtype arrayName ; qtype arrayName; Java語言程序設計基礎教程課件(第2章)n2二維數組的初始化 n 靜態初始化 qint intArray =1,2,2,3,3,4,5; qJava語言中,由于把二維數組看作是數組的數組,數組空間不是連續分配的,所以不要求二維數組每一維的大小相同。 Java語言程序設計基礎教程課件(第2章)n 動態初始化 n1) 直接為每一維分配空間,格式如下: qarrayName = new typearrayLength1arrayLength2; qint a = new int23; n2) 從最高維開始,分別為每一維分配空間: qarrayName = new typearrayLength1 ; qar

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論