Java課件1第3章 運算符表達式和語句_第1頁
Java課件1第3章 運算符表達式和語句_第2頁
Java課件1第3章 運算符表達式和語句_第3頁
Java課件1第3章 運算符表達式和語句_第4頁
Java課件1第3章 運算符表達式和語句_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

3.1運算符與表達式

3.1.1算術(shù)運算符與算術(shù)表達式3.1.2自增,自減運算符3.1.3算術(shù)混合運算的精度3.1.4關(guān)系運算符與關(guān)系表達式3.1.5邏輯運算符與邏輯表達式3.1.6賦值運算符與賦值表達式3.1.7位運算符3.1.8instanceof運算符3.1.9運算符綜述

+,-,*,/,%。用算術(shù)符號和括號連接起來的符合java語法規(guī)則的式子,稱為算術(shù)表達式自增、自減運算符:++,--是單目運算符,可以放在操作元之前,也可以放在操作元之后。操作元必須是一個整型或浮點型變量。作用是使變量的值增1或減1,如:++x(--x)表示在使用x之前,先使x的值增(減)1。x++(x--)表示在使用x之后,使x的值增(減)1。3.1運算符與表達式

3.1.1算術(shù)運算符與算術(shù)表達式3.1.2自增,自減運算符3.1.3算術(shù)混合運算的精度3.1.4關(guān)系運算符與關(guān)系表達式3.1.5邏輯運算符與邏輯表達式3.1.6賦值運算符與賦值表達式3.1.7位運算符3.1.8instanceof運算符3.1.9運算符綜述精度從“低”到“高”排列的順序是:byteshortcharintlongfloatdouble1.如果表達式中有雙精度浮點數(shù)(double型數(shù)據(jù)),則按雙精度進行運算。例如,表達式:5.0/2+10的結(jié)果12.5是double型數(shù)據(jù)。2.如果表達式中最高精度是單精度浮點數(shù)(float型數(shù)據(jù)),則按單精度進行運算。例如,表達式:5.0F/2+10的結(jié)果12.5F是float型數(shù)據(jù)。3.如果表達式中最高精度是long型整數(shù),則按long精度進行運算。例如,表達式:12L+100+'a'的結(jié)果209L是long型數(shù)據(jù)。4.如果表達式中最高精度低于int型整數(shù),則按int精度進行運算。例如,表達式:(byte)10+'a'和5/2的結(jié)果分別為107和2,都是int型數(shù)據(jù)。Java允許把不超出byte型(short,char)的int型常量賦值給byte型變量。例如,bytex=97+1;bytey=1;都是正確的。但是,對于bytez=97+y就是錯誤的,因為編譯器不檢查表達式97+y中變量y的值,只檢查y的類型,并認為表達式的結(jié)果是int型精度,所以對于bytez=97+y;編譯器會提示“不兼容的類型:從int轉(zhuǎn)換到byte可能會有損失”的信息。3.1運算符與表達式

3.1.1算術(shù)運算符與算術(shù)表達式3.1.2自增,自減運算符3.1.3算術(shù)混合運算的精度3.1.4關(guān)系運算符與關(guān)系表達式3.1.5邏輯運算符與邏輯表達式3.1.6賦值運算符與賦值表達式3.1.7位運算符3.1.8instanceof運算符3.1.9運算符綜述>,<,>=,<=,==,!=關(guān)系運算符是二目運算符,用來比較兩個值的關(guān)系。關(guān)系運算符的運算結(jié)果是boolean型,當運算符對應(yīng)的關(guān)系成立時,運算結(jié)果是true,否則是false。例如,10<9的結(jié)果是false,5>1的結(jié)果是true,3!=5的結(jié)果是true,10>20-17的結(jié)果為true.&&,||,!邏輯運算符實現(xiàn)邏輯與、或和非。邏輯運算符的操作元必須是boolean型數(shù)據(jù)。例如,2>8&&9>2的結(jié)果為false,2>8||9>2的結(jié)果為true。邏輯運算符&&和||也稱做短路邏輯運算符,這是因為當op1的值是false時,&&運算符在進行運算時不再去計算op2的值,直接就得出op1&&op2的結(jié)果是false;當op1的值是true時,||運算符在進行運算時不再去計算op2的值,直接就得出op1||op2的結(jié)果是true。3.1運算符與表達式

3.1.1算術(shù)運算符與算術(shù)表達式3.1.2自增,自減運算符3.1.3算術(shù)混合運算的精度3.1.4關(guān)系運算符與關(guān)系表達式3.1.5邏輯運算符與邏輯表達式3.1.6賦值運算符與賦值表達式3.1.7位運算符3.1.8instanceof運算符3.1.9運算符綜述賦值運算符:=是二目運算符,左面的操作元必須是變量,不能是常量或表達式。設(shè)x是一個整型變量,y是一個boolean型變量,x=20和y=true都是正確的賦值表達式,賦值運算符的優(yōu)先級較低,是14級,結(jié)合方向右到左。賦值表達式的值就是=左面變量的值。例如,假如a,b是2個int型變量,那么表達式b=12和a=b=100的值分別是12和100。

注意不要將賦值運算符

=與等號邏輯運算符

==

混淆,比如,12=12是非法的表達式,而表達式12==12的值是true。3.1運算符與表達式

3.1.1算術(shù)運算符與算術(shù)表達式3.1.2自增,自減運算符3.1.3算術(shù)混合運算的精度3.1.4關(guān)系運算符與關(guān)系表達式3.1.5邏輯運算符與邏輯表達式3.1.6賦值運算符與賦值表達式3.1.7位運算符3.1.8instanceof運算符3.1.9運算符綜述1.&

:“按位與”運算。如果a,b兩個數(shù)據(jù)對應(yīng)位都是1,則運算結(jié)果c的該位是1,否則是0。2.|:“按位或”運算。如果a,b兩個數(shù)據(jù)對應(yīng)位都是0,則運算結(jié)果c的該位是0,否則是1。3.~:“按位非”運算。是單目運算符,對一個數(shù)據(jù)a按位進行運算,如果a對應(yīng)位是0,則運算結(jié)果c的該位是1,否則是04.^:“按位異或”運算。如果a,b數(shù)據(jù)對應(yīng)位相同,則運算結(jié)果c的該位是0,否則是1。例子1中,利用“異或”運算的性質(zhì),對幾個字符進行加密并輸出密文,然后再解密.例子13.1運算符與表達式

3.1.1算術(shù)運算符與算術(shù)表達式3.1.2自增,自減運算符3.1.3算術(shù)混合運算的精度3.1.4關(guān)系運算符與關(guān)系表達式3.1.5邏輯運算符與邏輯表達式3.1.6賦值運算符與賦值表達式3.1.7位運算符3.1.8instanceof運算符3.1.9運算符綜述instanceof

運算符是二目運算符,左面的操作元是一個對象;右面是一個類。當左面的對象是右面的類或子類創(chuàng)建的對象時,該運算符運算的結(jié)果是true,否則是false。例如zhanginstanceofPeople的結(jié)果是trueJava的表達式就是用運算符連接起來的符合Java規(guī)則的式子。運算符的優(yōu)先級決定了表達式中運算執(zhí)行的先后順序。例如,x<y&&!z相當于(x<y)&&(!z)。沒有必要去記憶運算符的優(yōu)先級別,在編寫程序時盡量的使用括號()運算符號來實現(xiàn)想要的運算次序,以免產(chǎn)生難以閱讀或含糊不清的計算順序。3.2語句概述

1.方法調(diào)用語句2.表達式語句3.復(fù)合語句4.空語句5.控制語句6.package語句和import語句如:System.out.println("Hello");由一個表達式構(gòu)成一個語句,即表示式尾加上分號。比如賦值語句:x=23;可以用{}把一些語句括起來構(gòu)成一條復(fù)合語句,如:{

z=123+x;System.out.println("Howareyou");}一個分號也是一條語句,稱做空語句??刂普Z句分為條件分支語句、開關(guān)語句和循環(huán)語句,將在后面的3.3、3.4和3.5節(jié)介紹。package語句和import語句和類、對象有關(guān),將在第4章講解。3.3if條件分支語句

3.3.1if語句3.3.2if-else語句3.3.3if-elseif-else語句if(表達式){

若干語句//if操作部分}表達式的值必須是boolean類型,當值為true時,則執(zhí)行緊跟著的復(fù)合語句,結(jié)束當前if語句的執(zhí)行;如果表達式的值為false,結(jié)束當前if語句的執(zhí)行。在if語句中,其中的復(fù)合語句中如果只有一條語句,{}可以省略不寫,但為了增強程序的可讀性最好不要省略例子2中,將變量a,b,c內(nèi)存中的數(shù)值按大小順序進行互換(從小到大排列)。例子23.3if條件分支語句

3.3.1if語句3.3.2if-else語句3.3.3if-elseif-else語句if(表達式){

若干語句

//if操作}else{

若干語句

//else操作}表達式的值必須是boolean類型,當值為true時,執(zhí)行if后的復(fù)合語句,結(jié)束當前if-else語句的執(zhí)行;如果表達式的值為false,則執(zhí)行關(guān)鍵字else后面的復(fù)合語句,結(jié)束當前if-else語句的執(zhí)行。例子3中有兩條if-else語句,其作用是根據(jù)成績輸出相應(yīng)的信息)。例子33.3if條件分支語句

3.3.1if語句3.3.2if-else語句3.3.3if-elseif-else語句if-elseif-else語句是多條件分支語句,即根據(jù)多個條件來控制程序執(zhí)行的流程。if(表達式){

若干語句}elseif(表達式){

若干語句}……else{

若干語句}表達式的值必須是boolean類型。3.4開關(guān)語句

語句格式

表達式與執(zhí)行流程switch語句是單條件多分支的開關(guān)語句,它的一般格式定義如下(其中break語句是可選的)。switch(表達式){case

常量值1:

若干個語句break;case常量值2:

若干個語句break;...case常量值n:

若干個語句break;default:

若干語句}3.4開關(guān)語句

語句格式

表達式與執(zhí)行流程“表達式”的值可以為byte,short、char、int型,枚舉類型或String類型(見9.1),對應(yīng)的“常量值1”到“常量值n”必須也是相應(yīng)的byte,short、char、int型常量,枚舉類型常量或String常量,而且要互不相同。switch語句首先計算表達式的值,如果表達式的值和某個case后面的常量值相等,就執(zhí)行該case里的若干個語句直到碰到break語句為止。如果某個case中沒有使用break語句,一旦表達式的值和該case后面的常量值相等,程序不僅執(zhí)行該case里的若干個語句,而且繼續(xù)執(zhí)行后繼的case里的若干個語句,直到碰到break語句為止。

若switch語句中的表達式的值不與任何case的常量值相等,則執(zhí)行default后面的若干個語句。

switch語句中的default是可選的,如果它不存在,并且switch語句中表達式的值不與任何case的常量值相等,那么switch語句就不會進行任何處理。例子4

使用了switch語句,運行效果如圖。例子43.5循環(huán)語句

3.5.1for循環(huán)3.5.2while循環(huán)3.5.3do-while循環(huán)循環(huán)語句是根據(jù)條件,要求程序反復(fù)執(zhí)行某些操作,直到程序“滿意”為止。

for(表達式1;表達式2;表達式3){

若干語句

//循環(huán)體}表達式2是值為boolean型的表達式,稱為循環(huán)條件。例子5計算8+88+888+8888……的前12項和例子53.5循環(huán)語句

3.5.1for循環(huán)3.5.2while循環(huán)3.5.3do-while循環(huán)while(表達式){

若干語句

//循環(huán)體}表達式是值為boolean型的表達式,稱為循環(huán)條件。例子6

用while循環(huán)計算1+1/2!+1/3!+1/4!…的前20項。例子6do{

若干語句//循環(huán)體}while(表達式);表達式是值為boolean型的表達式,稱為循環(huán)條件。3.5break和continue語句

Breakcontinue在循環(huán)體中可以使用break語句。如果在某次循環(huán)中執(zhí)行了break語句,那么整個循環(huán)語句就結(jié)束。如果在某次循環(huán)中執(zhí)行了continue語句,那么本次循環(huán)就結(jié)束,即不再執(zhí)行本次循環(huán)中循環(huán)體中continue語句后面的語句,而轉(zhuǎn)入進行下一次循環(huán)。例子7

使用了break和continue語句。例子7

3.6數(shù)組與for語句

JDK1.5對for語句的功能給予擴充、增強,以便更好地遍歷數(shù)組。語法格式如下:for(聲明循環(huán)變量:數(shù)組的名字){…}其中,聲明的循環(huán)變量的類型必須和數(shù)組的類

溫馨提示

  • 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

提交評論