第2章-Java語法基礎(chǔ)-new課件_第1頁
第2章-Java語法基礎(chǔ)-new課件_第2頁
第2章-Java語法基礎(chǔ)-new課件_第3頁
第2章-Java語法基礎(chǔ)-new課件_第4頁
第2章-Java語法基礎(chǔ)-new課件_第5頁
已閱讀5頁,還剩111頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、Page 1Review 1:試著編寫一個簡單的java application程序,當通過java Welcome命令時,可以在命令行界面上打印一行語句:“Welcome to Java World !”Page 2Welcome to Java World!/welcome.java: this application program prints Welcome to Java World on the console !public class Welcomepublic static void main ( String args )System.out.println( “Welc

2、ome to Java World !” );Java 程序至少包含一個類,每個類從類的聲明開始,定義自己的數(shù)據(jù)和方法。public 為修飾符;Class為保留字;Welcome 為類的名字注:保存的時候文件名要和類名一致,包括大小寫Page 3編譯源程序首先在命令提示符下,進入該文件的根目錄用javac命令編譯源文件,如:javac Welcome.java運行Java程序 執(zhí)行java命令就可運行Java程序 ,如:java WelcomePage 4編寫源程序 (例MyFirstApplet.java)import java.applet.*;import java.awt.*;publ

3、ic class MyFirstApplet extends Applet public void paint(Graphics g) g.drawString(Hello! java world!,2,20); Review 2:Applet程序的編寫與運行Page 5編譯源程序 建立MyFirstApplet.html,將MyFirstApplet.class字節(jié)碼文件放入其中。 MyFirstApplet program 瀏覽MyFirstApplet.htmlPage 6小竅門:為他人的閱讀提供方便文檔生成器(javadoc.exe) 接受源文件(后綴為.java)輸入,然后自動生成一

4、個HTML文件,內(nèi)容包括java源文件中的類、變量、方法、接口、異常等。實現(xiàn)步驟:在文檔中利用/* .*/實現(xiàn)注釋利用javadoc -d path Welcome.java命令第2章 Java語法基礎(chǔ)Page 8本章目錄2.1 Java程序的結(jié)構(gòu)2.2 標識符和關(guān)鍵字2.3 數(shù)據(jù)類型2.4 常量和變量2.5 運算符和表達式2.6 流程控制Page 9教學目標了解Java程序的組成。熟練掌握Java語言中的數(shù)據(jù)類型。掌握Java中各類運算符的使用方法。掌握Java中表達式的基本原理及使用方法熟練掌握Java語言中的流程控制結(jié)構(gòu)。掌握Java中選擇結(jié)構(gòu)的基本原理及使用方法。掌握Java中循環(huán)結(jié)構(gòu)

5、的基本原理及使用方法。Page 10教學重點數(shù)據(jù)類型、運算符和表達式是編程語言的基本元素,詳細了解這些元素是掌握編程語言的基石。本章首先詳細介紹了數(shù)據(jù)類型,讓讀者能夠了解變量的使用方法,接著講解了Java語言的運算符,讓讀者明確Java編程中變量定義及使用的基本方法。介紹了表達式的語法形式及使用方法,讓讀者對于變量的使用有了更深的了解掌握順序流程、分支流程語句,并要求學生能靈活應(yīng)用。 了解和掌握變量作用域,循環(huán)流程、與程序轉(zhuǎn)移有關(guān)的其它語句。 Page 112.1 Java程序的結(jié)構(gòu)一、Java程序布局Java的程序在結(jié)構(gòu)上看,有兩個部分:一個是引入庫聲明區(qū)引入庫聲明區(qū)的格式如下:import

6、 類庫名;另一部分是類的定義區(qū) Page 122.1 Java程序的結(jié)構(gòu)二、Java源程序的組成Java源文件主要包含以下三個要素:(1)一個可選擇的包聲明語句,格式如下:package 語句; (2)任意數(shù)量的引入類聲明語句,格式如下:import 已有類名;(3)類和接口的聲明,只能有一個可見性為public的類,且要求源文件必須和public類名相同,而且大小寫都完全一致。 Page 132.2 Java程序的一些特殊語句一、注釋語句注釋:是為源程序增加必要的解釋說明的內(nèi)容,其目的是提高程序的可讀性,書寫注釋是編寫程序的良好習慣。Java中有三種形式的注釋: / 注釋部分 (單行) /*

7、 注釋部分 */ (多行) /* 注釋部分 */ (多行)Page 14一、注釋語句段落注釋:/* this is a comment */ 或 /* that continues* across lines */2.2 Java程序的一些特殊語句Page 15一、注釋語句文檔注釋:/* Class Name: MyClass Author:michale Ma Version:1.0 Date:apr 16 2010 This is the first java applet!*/ 2.2 Java程序的一些特殊語句Page 16一、注釋語句注釋文檔根據(jù)它所注釋的內(nèi)容,分成三類:變量,方法和

8、類。類的注釋一定要出現(xiàn)在類定義的前面;變量注釋要出現(xiàn)在變量定義的前面;而方法注釋則要出現(xiàn)在方法定義的前面。注釋和定義之間在不能有任何東西2.2 Java程序的一些特殊語句Page 17例如:/* A class comment */public class doctest /* A variable comment */public int I;/* A method comment */public void f( ) 2.2 Java程序的一些特殊語句Page 18一、注釋語句文檔注釋除了在標準表格中使用文檔方法和類的特定起始標簽外,還包括HTML標記。后跟一個定義標簽用途的關(guān)鍵字。2.2

9、 Java程序的一些特殊語句Page 19定 義說 明author常用來定義作者的代碼。deprecated應(yīng)用在庫類和方法的文檔中,用以標識它們已經(jīng)被代替,通常不應(yīng)該使用在新的應(yīng)用程序中exception用來為代碼可能出現(xiàn)的異常和引起異常的地方提供文檔。link在產(chǎn)生的文檔內(nèi),生成一個到文檔其他部分的鏈接?;ɡㄌ栍脕砼c同行的其余文本分割開param用來描述一個方法的參數(shù)。return用來提供方法的返回值。see用來指定對代碼其他部分的交叉引用,例如:其他類或方法,也可以引用一個URL。throwsexception的同義詞。version用來說明當前代碼的版本。2.2 Java程序的一些特殊

10、語句Page 20一、標識符標識符的引入:程序開發(fā)人員需要對程序中的變量、方法等元素加以命名,以確保它們的唯一性,這時用到標識符。什么是標識符:變量、方法、類和對象的名稱都是標識符2.2 Java標識符和關(guān)鍵字標識符的組成:以字母、下劃線或美元符號開始的字符序列,后跟字母、數(shù)字、下劃線或美元符號。Page 21使用標識符的注意事項標識符區(qū)分大小寫。不用使用Java關(guān)鍵字來命名。標志符不能以數(shù)字開頭,標志符中間也不能包括空格或制表符;沒有長度限制,但不建議使用太長的標識符。可以使用中文作為標識符 練習:找出合法的標識符2teacher studentName Student_Name room#

11、 abstract _my_value $address3a int my date email2.2 Java標識符和關(guān)鍵字Page 22二、關(guān)鍵字(保留字)abstractbreakbytebooleancatchcasecharclasscontinuedefaultdodoubleelseextendsfalsefinalfloatforfinallyifimportimplementsintinterfaceinstanceoflonglengthnativenewnullpackageprivateprotectedpublicreturnswitchsynchronizedsho

12、rtstaticsupertrytruethisthrowthrowsthreadsafetransientvoidvolatilewhile2.2 Java標識符和關(guān)鍵字Page 23請判斷下列標識符哪些合法哪些不合法? 123, abs , $123,myname, my name, MYname, #myname, _myname, My_name,2.2 Java標識符和關(guān)鍵字Page 24三、J2EE命名規(guī)范類名和接口名:各單詞首字母大寫,其余字母小寫。如SamDoc ,HelloWorldApp方法名和變量名:一般首字母小寫,后面每個單詞的第一個字母大字。如delStudent包名

13、:字母全部小寫。如,com.abc.dollapp。常量名:采用大寫形式,單詞之間以下劃線“_”隔開。如DEFAULT_COLOR_DOL。2.2 Java標識符和關(guān)鍵字Page 25數(shù)據(jù)類型基本數(shù)據(jù)類型引用數(shù)據(jù)類型數(shù)值型字符型:char布爾型:boolean整型:byte,short,int,long實型:float,double類:class數(shù)組和字符串接口:interface2.3 數(shù)據(jù)類型Page 26一、基本數(shù)據(jù)類型基本數(shù)據(jù)類型:也稱作簡單數(shù)據(jù)類型。Java語言有8種簡單數(shù)據(jù)類型,分別是:boolean 布爾型byte 字節(jié)型short 短整型int 整型long 長整型float

14、單精度double 雙精度char 字符型2.3 數(shù)據(jù)類型Page 27基本數(shù)據(jù)類型習慣上可分為4大類型:整數(shù)類型:byte、short、int、long浮點類型:float、double字符類型:char邏輯類型:booleanJava的基本數(shù)據(jù)類型長度是固定的,可以跨平臺自由移植。(c語言的基本數(shù)據(jù)類型根據(jù)平臺的不同會有所參別)一、基本數(shù)據(jù)類型2.3 數(shù)據(jù)類型Page 28二、整型數(shù)據(jù)類型(字面值及變量)整型數(shù)據(jù)類型:不含小數(shù)點的數(shù)字為整數(shù)類型。例如:-124、948、0等。 有以下4種: 整數(shù)類型說明類型占用位數(shù)數(shù)據(jù)范圍byte字節(jié)型8-2727-1short短整型16-215 215-

15、1int整型32-231 231-1long長整型64-263 263-12.3 數(shù)據(jù)類型Page 29數(shù)據(jù)類型 字節(jié)取值范圍示例byte1-128127byte val = 12;short2-3276832767short val = 12;int4-2,147,483,6482,147,483,647 int val = 12;long8-9,223,372,036,854,775,808 9,223,372,036,854,775,807long val1 = 12;long val2 = 34L;二、整型數(shù)據(jù)類型(字面值及變量)2.3 數(shù)據(jù)類型Page 30整型字面值:整型數(shù)據(jù)可以表

16、示10進制、8進制、16進制。 10進制:123, -234; 8進制: 0123,-0234; 16進制:0 x64, -0 xff;思考:在書寫表達上它們有什么區(qū)別?整型默認為int型,若是長整形需要在數(shù)據(jù)后加上字母L。例如:123為int型,而123L則是long型二、整型數(shù)據(jù)類型(字面值及變量)2.3 數(shù)據(jù)類型Page 31整型變量:例:int x=123;long y=123L;long z=123l;byte luckyNumber=7;short smallNumber=1234;注意:必須確保變量的初始值在相應(yīng)數(shù)據(jù)類型的取值范圍之內(nèi),否則編譯器就會報錯。Java中沒有無符號型整

17、數(shù)。二、整型數(shù)據(jù)類型(字面值及變量)2.3 數(shù)據(jù)類型Page 32三、浮點數(shù)據(jù)類型(字面值及變量)浮點數(shù)據(jù)類型:含小數(shù)點的數(shù)字為浮點類型。例如:-38.32、34.0等。有以下2種: 實數(shù)類型說明類型占用位數(shù)數(shù)據(jù)范圍float單精度32- 2-149 (2-2-23)2127double雙精度64-2-1074 (2-2-52)210232.3 數(shù)據(jù)類型Page 33浮點型字面值:實型數(shù)據(jù)用10進制形式表示,帶有小數(shù)部分。如1.23,-3.45,1.0用科學計數(shù)法形式表示。如1.23456E+3、12345E-4,其中e或E之前必須有數(shù)字,且e或E后面的指數(shù)必須為整數(shù)。實型默認為double型

18、,數(shù)字后加f或F為float型,加d或D為double型。三、浮點數(shù)據(jù)類型(字面值及變量)2.3 數(shù)據(jù)類型Page 34浮點型變量:例:double sunDistance=1.496E8;float electronMass=9E-28F;double x=0.123;float y=0.123F,z=0.123f;三、浮點數(shù)據(jù)類型(字面值及變量)2.3 數(shù)據(jù)類型Page 35動動腦筋public class FloatTestpublic static void main ( String args )float f;f = 1.3 ;System.out.println( f );Pag

19、e 36四、字符數(shù)據(jù)類型(字面值及變量)字符型字面值:用單引號作為定界符。如: x , X , a , A字符型變量:用于存儲一個字符,在內(nèi)存中占2個字節(jié)。存儲為Unicode碼形式如: char myChar=A2.3 數(shù)據(jù)類型Page 37字符集:ASCII(American Standard Code for Information Interchange)字符集:使用7位代碼表示大小寫字母、數(shù)字09以及若干控制字符,如換行符。ISO-8859-1 Latin-1字符集:在西歐,用戶希望字符集能夠表示他們本國字符集的所有字符,ASCII字符集因而被擴展到8位,即增加了128個字符,用于表

20、示英文中不存在的各種西歐語言的字符。四、字符數(shù)據(jù)類型(字面值及變量)2.3 數(shù)據(jù)類型Page 38字符集:Unicode字符集:是ISO標準16位字符集,支持65536個不同的字符。其中大約有21000個字符專門用于中文、日文和韓文的表意文字。ASCII、ISO Latin-1都是Unicode的子集。Java內(nèi)部使用2個字節(jié)表示每個字符,采用Unicode編碼。四、字符數(shù)據(jù)類型2.3 數(shù)據(jù)類型Page 39轉(zhuǎn)義字符:轉(zhuǎn)義符號以“”開頭,后跟一個或幾個字符或符號來顯示一些打印語句不能顯示的符號或效果。例如: 、 、 等等。n :表示回車換行;t :表示制表(即Tab鍵);f :表示換頁;b :

21、表示退格;r :表示回車;ddd : 3位八進制數(shù)所代表的字符;uxxxx : 4位十六進制數(shù)所代表的字符。2.3 數(shù)據(jù)類型Page 40五、字符串常量字符串常量是用一對雙引號括起來的一系列字符。如”It is a nice day!”和”Java” ;注意,c不等于“c”。2.3 數(shù)據(jù)類型Page 41六、布爾數(shù)據(jù)類型(字面值及變量)布爾型字面值:只有兩個值:true false布爾型變量:例如: boolean state=true;或 boolean state; state=true;2.3 數(shù)據(jù)類型Page 42各基本數(shù)據(jù)類型默認缺省值byte ( byte )0short ( sh

22、ort )0int 0long 0lfloat 0.0fdouble 0.0dchar u0000(空字符)boolean false2.3 數(shù)據(jù)類型Page 43七、有固定序列整型值的變量(枚舉)定義枚舉型定義結(jié)尾不加分號,因為是定義類型枚舉型名字用大寫字母開頭,枚舉值的名字一般用小寫字母開頭。例:enum Day Monday,Tuesday,Wednesday Day weekday=Day.Tuesday;2.3 數(shù)據(jù)類型Page 44八、引用類型引用類型是一種針對對象的數(shù)據(jù)類型。在Java中,“引用”指向一個對象在內(nèi)存中的位置,實質(zhì)上是一種帶有很強的完整性和安全性的限制的指針。當聲明

23、某個類、接口或數(shù)組類型的一個變量時,這個變量的值總是某個對象的引用或是null引用。指針就是簡單的地址,而引用除了表示地址外,還可以提供對象其他信息。指針可以有+,-運算,引用不可以運算。2.3 數(shù)據(jù)類型Page 45例:public class Teacherprivate String name;private int age;private double salary;public static void mian(String args)Teacher myTeacher=new Teacher(“Smith”,30,10000);代表類型對象的引用代表一個對象八、引用類型2.3 數(shù)據(jù)

24、類型Page 46總結(jié):變量有兩種類型:簡單類型變量:保存在堆棧中對象變量:保存在堆中,需要用new來分配空間變量名Int型變量名字節(jié)對象變量名32位地址對象實際存儲空間2.3 數(shù)據(jù)類型Page 47簡單變量進程堆棧一個進程有一個堆棧,獨享堆棧大小有限制2.3 數(shù)據(jù)類型Page 48對象內(nèi)容不放在堆棧stack中,放在堆heap中對象引用放在堆棧中對象變量堆棧進程堆對象對象2.3 數(shù)據(jù)類型Page 49練習:定義一 常量 PI并賦值為3.14定義一字符串類型的常量 NAME并賦值為qrsoft定義一整型常量并賦值為100定義一字符常量并賦值為a2.3 數(shù)據(jù)類型Page 50九、數(shù)據(jù)類型轉(zhuǎn)換自動

25、類型轉(zhuǎn)換兩種類型兼容;目標類型大于源類型;強制類型轉(zhuǎn)換兩種類型不兼容目標類型小于源類型強制類型轉(zhuǎn)換的通用格式如下:目標類型 變量=(目標類型)值;例如:int i = 3;byte b = ( byte )i;賦值語句中的自動類型轉(zhuǎn)換2.3 數(shù)據(jù)類型Page 51開動腦筋:編譯結(jié)果是什么?public class ByteTestpublic static void main ( String args )byte b;b = 3 ;b = b * 3;System.out.println( b );Page 52開動腦筋:編譯結(jié)果是什么?public class ByteTestpublic

26、 static void main ( String args )byte b;b = 3 ;b = (byte) (b * 3);System.out.println( b );Page 53輸出語句使用System.out.print(x)將數(shù)值x輸出例如:double x=10000.0/3.0;System.out.print(x);或System.out.printf(“%8.2f”,x); System.out.printf(“Hello,%s,Next year,youll be %d”,name,age); 也可以使用System.out.println()語句Java程序的一

27、些特殊語句轉(zhuǎn)換符類型舉例d十進制整數(shù)159x十六進制整數(shù)9fo八進制整數(shù)237f定點浮點數(shù)15.9e指數(shù)浮點數(shù)1.59e+01g通用浮點數(shù)(e和f中較短的)a十六進制浮點0 x1.fccdp3s字符串Helloc字符Hb布爾trueh散列碼42628b2tx日期時間%百分號%n與平臺有關(guān)的行分隔符Page 55常量:如果一個存儲空間中的數(shù)據(jù)在程序運行過程中一直都沒有發(fā)生改變,稱這種空間為常量,常量也有常量名,用保留字final來定義。例如:final double PI = 3.1415926; final int MY_DATE = 5; 其中PI與MY_DATE就是常量 注意:常量只能在定

28、義時賦值 變量可以隨時賦值,賦值由賦值符( = )實現(xiàn).2.4 常量例如: final int myData1 = 3; /定義常量 int myData2 = 2; /定義變量 myData2 =5;給myDate2賦值為5 可以改變myData2的值,但是不能改變 myDate1的值。Page 56類常量:可以在一個類中的多個方法中使用 使用關(guān)鍵字static finalpublic class ConstantsExample2 public static final double M=2.54; public static void main(string args) double w

29、idth=8.5; double height=11; System.out.println(“paper size in centimeters:” +width*M +”by” +height*M); 2.4 常量Page 57一、變量(Variable) 變量:一個命名的內(nèi)存塊,用于存儲Java程序中的信息。每個內(nèi)存塊只能存儲一種類型的數(shù)據(jù)。變量的類型和變量名 變量名以Unicode字母(國際字符集標準,包括_和$)開頭 接下來是任意數(shù)量的Unicode字母和數(shù)字 類名以大寫字母開頭 2.4 變量例子:合法的變量定義 String Name;int CardID;String PassW

30、ord;int Money;Page 58一、變量(Variable)Java的變量命名要遵從如下的三條規(guī)則:必須由Unicode字符集中的字符組成不能與Java語言的關(guān)鍵字相同,或命名成布爾值(true或false)在同一個作用范圍內(nèi),不能有相同名字的兩個變量。 所謂的變量的作用范圍是指可以存取變量的代碼模塊。變量的作用范圍同時也決定了變量何時產(chǎn)生,何時消滅。 2.4 變量Page 59變量命名:按標識符中的命名規(guī)則變量定義:包括變量名、變量類型和作用域Type varName =value , varName =value 變量類型變量名變量值例如:int x,y;double a=3.2

31、,b=7.1;變量的定義分為兩步:1.變量聲明(declaration) 如:int x;2.變量賦值(Assignment)如:x=10;合并這兩步即為聲明變量同時進行初始化, 如: int x=10;二、變量的命名與定義2.4 變量Page 60聲明同時初始化:讓一個變量在生成的時候具有一個指定的常量。聲明后賦值:在變量生成后,利用賦值語句把數(shù)據(jù)從內(nèi)存中的一個位置復(fù)制另一個位置。int x=10;x10int x;x=10;x1010注意:必須要先聲明,再使用。二、變量的命名與定義2.4 變量Page 61變量的作用域:指該變量名可以被引用在程序的那一部分上。變量作用域的劃分:局部變量(L

32、ocal Variable):是定義在方法或方法里的程序塊中的變量,從他們被聲明的地方開始,一直到包含這個聲明的語句塊結(jié)尾均可被訪問,使用前一定要初始化。又可稱為:自動變量(Automatic Variable)臨時變量(Temporary Variable)棧變量(Stack Variable)二、變量的命名與定義2.4 變量Page 62變量作用域的例子1 int i ; /對這個作用域而言,i是局部變量/這里不可以訪問i,i在這里不存在Page 63變量作用域的例子2在某個局部作用域內(nèi)定義的變量不能在其嵌套的局部作用域中重新定義。 int i = 2; int j =4; int i =

33、 6; /出錯,i已被定義 j = 8; Page 642.5 運算符和表達式 運算符,也稱為操作符,用于對數(shù)據(jù)進行計算和處理,或改變特定對象的值。運算符按其操作數(shù)的個數(shù)來分,可分為一元運算符、二元運算符和三元運算符。表達式是運算符、常量和變量的組合。Java的表達式既可以單獨組成語句,又可以出現(xiàn)于循環(huán)條件測試、變量說明、方法的調(diào)用參數(shù)等場合。Page 65名稱符號算術(shù)運算符,*,/,%,賦值運算符=擴展賦值運算符+=、-=、*=、/=、%=、&=、|=、=、=、=關(guān)系運算符,=,&,|,條件運算符(?:)其他運算符分量運算符“”,下標運算符“”,實例運算符“instance of”,內(nèi)存分配

34、運算符“new”,強制類型轉(zhuǎn)換運算符(類型),以及方法調(diào)用運算符“()”等2.5 運算符和表達式 Page 66運算符用法作用+op取正值-op取負值+op, op+將某個數(shù)+1如a+或+a,+寫在左邊是先自加再賦值,寫在右邊是先賦值再自加-op, op-將某個數(shù)-1如a-或-a,-寫在左邊是先自減再賦值,寫在右邊是先賦值再自減ArithmaticTest1.java注意:i+(i-)與+i(-i)是有區(qū)別的 一、算術(shù)運算符和算術(shù)表達式 2.5 運算符和表達式 Page 67運算符用法作用+op1+op2進行加法運算 如 int a=3+2;char b=A; char c=(char)(b+

35、1);-op1-op2進行減法運算 如 int b=5-3;*op1*op2進行乘法運算 如 int c=5*3;/op1/op2進行除法運算 如 int d=10/3;%op1%op2進行取余運算 如 int e=5%3;一、算術(shù)運算符和算術(shù)表達式 2.5 運算符和表達式 Page 68二、賦值運算符和賦值表達式 運算符表達式等效表達式+=op1+=op2op1=op1+op2-=op1-=op2op1=op1-op2*=op1*=op2op1=op1*op2/=op1/=op2op1=op1/op2%=op1%=op2op1=op1%op2&=op1&=op2op1=op1&op2|=op

36、1|=op2op1=op1|op2=op1=op2op1=op1op2=op1=op2op1=op1op2=op1=op2op1=op1=op1=op2op1=op1op2OperatorSample.java2.5 運算符和表達式 Page 69三、關(guān)系運算符和關(guān)系表達式 運算符用法返回true值時的情況op1op2op1大于op2op1=op1=op2op1大于等于op2=op116?160:180; If (a16) b=160; else b=180; 2.5 運算符和表達式 72格式: ?:如:older = yourAgemyAge ? yourAge : myage;相當于如下的

37、if語句: If(yourAge myAge) older = yourAge; else older = myAge;條件運算符(三目運算符)Page 73六、位運算符和移位運算符 運算符功能表達式按位取反op&按位與op1&op2|按位或op1|op2按位異或op1op2op1按位右移op2位op1op2op1按位左移op2位op1op1添零右移op2位op1op2運算符可將兩個值相互交換,而不用把其中的任何一個值移動到其他地方。2.5 運算符和表達式 Page 74六、位運算符和移位運算符 LogicOperator.java符號名稱作用&與(AND)對應(yīng)位均為1,則運算結(jié)果為1,否則為

38、0|或(OR)對應(yīng)位均為0,則運算結(jié)果為0,否則為1異或(XOR)對應(yīng)位相同,則運算結(jié)果為0,否則為1求補對所有位取相反值2.5 運算符和表達式 Page 75六、位運算符和移位運算符 符號作用示例向左移位,從右邊補0int a=64 , b;b=a向右移位,從左邊傳遞符號位int a=16 , b;b=a2;/ b=4,右移位2次向右移位,從左邊補0int a=16 , b;b=a2;/ b=4,右移位2次練習假設(shè),a=00000001b,若執(zhí)行a1,a=?;執(zhí)行a2,a=?;執(zhí)行a1,a=?;執(zhí)行a3,a=?。假設(shè):int a=-1; a24=?;2.5 運算符和表達式 76邏輯運算符符號

39、全名&邏輯與(logical AND)&條件與(conditional AND)|邏輯或(logical OR)|條件或(conditional) OR!邏輯非(logical NOT)Page 77運算符描述優(yōu)先級結(jié)合性. ( ) 域,數(shù)組,括號1從左至右+ - - ! instanceof 一元運算符2從右至左new (type) 內(nèi)存分配運算符3從左至右* / %乘,除,取余4從左至右+ - 加,減5從左至右 位運算6從左至右 =邏輯運算7從左至右= !=邏輯運算8從左至右七、運算符優(yōu)先級 2.5 運算符和表達式 Page 78七、運算符優(yōu)先級 運算符描述優(yōu)先級結(jié)合性&按位與9從左至右按

40、位異或10從左至右|按位或11從左至右&邏輯與12從右至左|邏輯或13從左至右? :條件運算14從左至右= *= /= %= += = = 位運算15從左至右&= |= = = 位運算16從左至右2.5 運算符和表達式 79例1:打印一個3x4的矩陣class DrawRect public static void main(String args) System.out.println(“*);System.out.println(“*);System.out.println(“*);2.6 決 策80例2:上一個例子的變形class DrawRect public static void

41、main(String args) System.out.println(“*);System.out.println(“*);System.out.println(“*);System.out.println(“*n);System.out.println(“*);System.out.println(“*);System.out.println(“*);System.out.println(“*n);System.out.println(“*);System.out.println(“*);System.out.println(“*);System.out.println(“*);問題:如

42、何作出決策,提高程序的執(zhí)行效率?81分析問題找出最佳解決方案以上兩種方法是初學者最容易想到的,但做了很多重復(fù)的工作,會使程序變得很繁瑣,結(jié)構(gòu)也不夠清晰。在工作量少的時候似乎沒那么明顯,但當需要打印的矩陣比較大的時候就會顯現(xiàn)出來(如:打印一個100 x60的矩陣)。想解決這個問題我們可以通過循環(huán)來解決,講到循環(huán)就要先介紹一下程序的結(jié)構(gòu)化設(shè)計。82程序設(shè)計的三種結(jié)構(gòu)順序結(jié)構(gòu)循環(huán)結(jié)構(gòu)選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu)與選擇結(jié)構(gòu)所使用的語句又叫作流程控制語句,作用是改變程序的執(zhí)行順序。832.6 決 策比較Java提供6種關(guān)系運算符: , , = , = = , !=注意: “等于”關(guān)系運算符是兩個等號“= =”,而不

43、是一個等號“= ”(賦值運算符)。例:int x=3,y=4; int a=1,b=5; boolean state=x-ya+b;843.1 決 策if語句expression=true語句2語句1if( expression) 語句1;語句2;85if語句expression=true語句2語句塊語句塊:用花括號括起來的語句。if ( expression) statment1; statment2; 語句2;左側(cè)的語句也以下語句有什么不同?if ( expression) statment1; statment2; 語句2;決 策86提示:合理采用縮進格式書寫代碼堅持用左右大括號將if條

44、件括起來的習慣,即使一條語句也括。else子句if (expression) statement1;else statement2;next_statement;決 策87決 策if語句的嵌套形式if()if() ;else ;elseif() ;else ;若條件1成立,則執(zhí)行哪一組IF語句?若條件1不成立,則執(zhí)行哪一組IF語句?88決 策if語句的嵌套形式 if () ;else if () ;else if ().else ;什么情況下會執(zhí)行到語句2,什么情況下會執(zhí)行到語句n?語句1與語句2等是否可以都執(zhí)行?else總是和距它最近的if配對89 Character類常用的方法1、isDi

45、git():如果實參為數(shù)字09,則返回true,否則返回false。2、isLetter():如果實參為字母則返回true,否則返回false。3、isLetterOrDigit():如果實參為字母或數(shù)字則返回true,否則返回false。4、isWhitespace():如果實參是空白符,則返回true,否則返回false??瞻追ㄖ票矸?、換行符、回車符、換頁符。90switch語句又稱多分支選擇語句與if-else一樣,是Java語言的條件選擇語句,if 語句是判斷條件的值,再從兩個程序塊中選擇其中一塊執(zhí)行,只能出現(xiàn)兩個分支,而switch語句可存在多個分支。處理多種分支情況時,用swi

46、tch語句代替if語句可以簡化程序,使程序結(jié)構(gòu)清晰明了,可讀性增強。 switch語句91switch語句的一般形式為: switch () case :; break; case :; break; . case :; break; default:;3.4 switch語句產(chǎn)生的結(jié)果值可以是char型,byte型,short型,int型或枚舉型。不加break語句,執(zhí)行流程如何?若條件值與case值均不匹配,而又沒有此句,執(zhí)行流程如何?92 switch () case : case :case :; break;.case :;break;default :;執(zhí)行流程如何?switch語

47、句93for語句的一般形式為:for (; ; ) 其中:初始化部分設(shè)置控制循環(huán)的變量的初值。條件判斷部分可以是任何布爾表達式。迭代因子控制循環(huán)變量遞增或遞減。 循環(huán)for94for語句的執(zhí)行過程為:執(zhí)行初始化。判斷條件的返回值。如果為真執(zhí)行循環(huán)體語句;如果為假就跳出for語句循環(huán)。執(zhí)行迭代因子,為下次循環(huán)做準備。返回。 for語句是先執(zhí)行,即先判斷后執(zhí)行,如果不滿足判斷條件,循環(huán)體可能一次都不能執(zhí)行。循環(huán)for95for循環(huán)流程圖前續(xù)代碼及循環(huán)控制變量的定義循環(huán)體中的程序循環(huán)控制條件TrueFalse后續(xù)代碼步長變量的改變流程圖進程判斷輸入輸出起始符NYYN開始結(jié)束int i=0i3?i+i

48、4?j+int j=0打印*號打印換行符號97collection-based for循環(huán)采用for語句的基本格式在for循環(huán)語句的圓括號之間的第一個控制表達式中是循環(huán)變量,然后以冒號分隔,第二個控制表達式,確定了第一個控制表達式中聲明的變量的取值來源的集合。循環(huán)for98while語句的一般形式為:while () ; ; 3.6 循環(huán)while99while語句的執(zhí)行過程為: 初始化,為循環(huán)設(shè)置初始值。 判斷條件表達式的值,如果為真,就執(zhí)行循環(huán)體語句;如果條件表達式的值為假,就跳出while語句。執(zhí)行迭代部分,為下次循環(huán)做準備。返回。while語句是先執(zhí)行,即先判斷后執(zhí)行,如果不滿足判斷條

49、件,循環(huán)體可能一次都不能執(zhí)行。注意,在循環(huán)體中應(yīng)該有使循環(huán)趨于結(jié)束的語句,否則循環(huán)將永遠進行下去,形成死循環(huán)。 3.6 循環(huán)while100while循環(huán)的流程圖前續(xù)代碼及循環(huán)控制變量的定義循環(huán)體中的程序循環(huán)控制條件TrueFalse后續(xù)代碼101 for循環(huán)與while循環(huán)的比較for循環(huán)比while循環(huán)結(jié)構(gòu)清晰。for循環(huán)的循環(huán)控制變量的定義、初始化,選換結(jié)束的條件,步長變量的控制都在一條語句中實現(xiàn)。while循環(huán)的循環(huán)控制變量是在循環(huán)之前定義的,循環(huán)控制條件與for相同,而步長變量是在循環(huán)體內(nèi)部修改的。有時候用while實現(xiàn)會方便很多。例如在程序中將在110之間產(chǎn)生一個隨機數(shù),當產(chǎn)生的數(shù)

50、字為7的時候打印一個提示語句并結(jié)束程序,否則繼續(xù)執(zhí)行直到產(chǎn)生的數(shù)字為7。102while語句先判斷后執(zhí)行, while語句為“當型“循環(huán)do-while語句先執(zhí)行后判斷,循環(huán)體至少被執(zhí)行一次, 稱do-while語句為”直到型“循環(huán)。循環(huán)do-while103do-while語句的一般形式為:do ; ; while (); 注意:這里while()后面有一個“;”循環(huán)do-while104do-while語句的執(zhí)行過程為:初始化,為循環(huán)設(shè)置初始值。 執(zhí)行循環(huán)體語句。 執(zhí)行跌代部分,為下次循環(huán)做準備。 判斷條件表達式的值,如果為真,就返回;如果條件表達式的值為假,就跳出do-while語句。do-while語句是先執(zhí)行循

溫馨提示

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

評論

0/150

提交評論