版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第三章運(yùn)算符、表達(dá)式與語句高級(jí)語言程序設(shè)計(jì)(Java)3.1算術(shù)運(yùn)算符和算術(shù)表達(dá)式算術(shù)運(yùn)算符算術(shù)運(yùn)算符包括:+,-,*,/,%,++,--。加減運(yùn)算符加減運(yùn)算的結(jié)合性是從左到右。加減運(yùn)算的操作元是整型或浮點(diǎn)型數(shù)據(jù)。加減運(yùn)算符的優(yōu)先級(jí)是4級(jí)。級(jí)別越高,優(yōu)先性越低乘、除和求余運(yùn)算符乘、除和求余運(yùn)算的運(yùn)算符號(hào)為*、/、%,都是雙目運(yùn)算符。*、/、%運(yùn)算符的結(jié)合性是從左到右,例如:2*3/8,先計(jì)算2*3,然后再將得到的結(jié)果除以8。
乘、除和求余運(yùn)算的操作元是整型或浮點(diǎn)型數(shù)據(jù)。*、/、%運(yùn)算符的優(yōu)先級(jí)是3級(jí)。自增、自減運(yùn)算符自增、自減運(yùn)算的運(yùn)算符號(hào)為:++、--。
都是單目運(yùn)算符。運(yùn)算符可以放在操作元之前,也可以放在操作元之后,但操作元必須是一個(gè)整型或浮點(diǎn)型變量(不能是常量或表達(dá)式)。運(yùn)算符的作用是使變量的值增1或減1。運(yùn)算符的優(yōu)先級(jí)是2級(jí),結(jié)合性從右到左。注意前綴++:變量先自增1,后引用。例如:inta=2;intb=++a;(a=3,b=3)
后綴++:變量先引用,后自增1
。例如:inta=2;intb=a++;
(a=3,b=2)自減--的用法同上。算術(shù)表達(dá)式用算術(shù)符號(hào)和操作元連接起來的符合Java語法規(guī)則的式子,稱為算術(shù)表達(dá)式。例如(a+b)*(c-d)算術(shù)混合運(yùn)算的精度精度由低到高排列為: 低高
byteshortcharintfloatlongdoubleJava將按運(yùn)算符兩邊的操作元的最高精度保留結(jié)果的精度。例
5/2=2;5-3=2;
5/2.0=2.5;5.0-3.0f=2.0
char型數(shù)據(jù)和整型數(shù)據(jù)運(yùn)算結(jié)果的精度是int
如:‘H’+18=90關(guān)系運(yùn)算符與關(guān)系表達(dá)式關(guān)系運(yùn)算符用來比較兩個(gè)值的關(guān)系,關(guān)系運(yùn)算符的運(yùn)算結(jié)果是boolean型數(shù)據(jù)。當(dāng)運(yùn)算符對(duì)應(yīng)的關(guān)系成立時(shí),運(yùn)算結(jié)果是true,否則是false。關(guān)系運(yùn)算符包括:==,!=,<,<=,>,>=
“==”和“!=”都是由2個(gè)字符組成的一個(gè)完整的符號(hào),書寫時(shí)中間不要含有空格。關(guān)系運(yùn)算符優(yōu)先級(jí)低于算術(shù)運(yùn)算符,執(zhí)行順序自左向右。例10<9的結(jié)果是false,5>1的結(jié)果是true‘a(chǎn)’>‘b’的結(jié)果是false,’a’>’A’的結(jié)果是true10>20-17相當(dāng)于10>(20-17),結(jié)果為trueinta=10;a==8;結(jié)果為false結(jié)果為數(shù)值型的變量或表達(dá)式可以通過關(guān)系運(yùn)算符形成關(guān)系表達(dá)式。
intb=8;a>b+3; a!=b;邏輯運(yùn)算符與邏輯表達(dá)式邏輯運(yùn)算用來實(shí)現(xiàn)boolean型數(shù)據(jù)的邏輯“與”、“或”和“非”運(yùn)算,運(yùn)算結(jié)果是boolean型數(shù)據(jù)。邏輯運(yùn)算符包括:&,|,!,&&,||
&,|,&&,||是雙目運(yùn)算,!是單目運(yùn)算?!?&”的運(yùn)算法則是:當(dāng)2個(gè)操作元的值都是true時(shí),運(yùn)算結(jié)果是true,否則是false?!皘|”的運(yùn)算法則是:當(dāng)2個(gè)操作元的值都是flase時(shí),運(yùn)算結(jié)果是false,否則是true。注意區(qū)別簡潔”與”&&(“或”||)和非簡潔”與”&(“或”|)例如,inta=6,b=8,c=10,d=12;
booleanx=++a>b++&&c++>d--;(a=7,b=9,c=10,d=12,x=false)
booleanx=++a>b++&c++>d--;(a=7,b=9,c=11,d=11,x=false)&&,如果其前面的表達(dá)式為假,則不再計(jì)算其后面的表達(dá)式&,不管其前面的表達(dá)式是什么,都計(jì)算其后面表達(dá)式例如,inta=6,b=8,c=10,d=12;
booleanx=++a<b++||c++>d--;
(a=7,b=9,c=10,d=12,x=true)
booleanx=++a<b++|c++>d--;(a=7,b=9,c=11,d=11,x=true)||,如果其前面的表達(dá)式為真,則不再計(jì)算其后面的表達(dá)式|,不管其前面的表達(dá)式是什么,都計(jì)算其后面表達(dá)式移位運(yùn)算符位運(yùn)算符用來對(duì)二進(jìn)制位進(jìn)行操作,分為左移位操作和右移位操作。左移位運(yùn)算符左移位運(yùn)算的符號(hào)為<<,左移位運(yùn)算符左面的操作元稱作被移位數(shù),右面的操作數(shù)稱作移位量。特點(diǎn)
雙目運(yùn)算符。操作元必須是整型類型的數(shù)據(jù)。左位移的過程假設(shè)a是一個(gè)被移位的整型數(shù)據(jù),n是位移量。
a<<n運(yùn)算的過程是通過將a的所有位都左移n位,每左移一個(gè)位,左邊的最高位(即左邊的第1位)上的0或1被移出丟棄,并用0填充右邊的低位。比如:對(duì)整形數(shù)8<<1的計(jì)算8的二進(jìn)制表示:0000,0000,0000,0000,0000,0000,0000,1000左移一位的結(jié)果:0000,0000,0000,0000,0000,0000,0001,0000注意左位移操作是對(duì)整型數(shù)的操作,操作符兩邊必須是整型。
比整型更小的數(shù)據(jù)類型數(shù)據(jù)將被轉(zhuǎn)換成整型進(jìn)行運(yùn)算,比整型更大的數(shù)據(jù)類型數(shù)據(jù)是不能進(jìn)行移位運(yùn)算的。比整型更小的數(shù)據(jù)類型數(shù)據(jù)將被轉(zhuǎn)換成整型時(shí):對(duì)于正數(shù)將高位用0填充;負(fù)數(shù)將高位用1填充。例:bytea=-8;System.out.println(a<<2);結(jié)果:-321111,1111,1111,1111,1111,1111,1111,10001111,1111,1111,1111,1111,1111,1110,0000在進(jìn)行a<<n運(yùn)算時(shí)如果a是byte、short或int型數(shù)據(jù),系統(tǒng)總是先計(jì)算出n%32的結(jié)果m,然后進(jìn)行a<<m運(yùn)算。對(duì)于long型數(shù)據(jù),系統(tǒng)總是先計(jì)算出n%64的結(jié)果m,然后進(jìn)行a<<m運(yùn)算。比如:對(duì)于int數(shù)5<<1與5<<33的結(jié)果相等;對(duì)于long數(shù)5<<1與5<<65的結(jié)果相等。右移位運(yùn)算符右移位運(yùn)算的符號(hào)為>>,右移位運(yùn)算符左面的操作元稱作被移位數(shù),右面的操作數(shù)稱作移位量。特點(diǎn)
雙目運(yùn)算符。操作元必須是整型類型的數(shù)據(jù)。右位移的過程假設(shè)a是一個(gè)被移位的整型數(shù)據(jù),n是位移量。
a>>n運(yùn)算的過程是通過將a的所有位都右移n位,每右移一個(gè)位,右邊的最低位(即右邊的第1位)上的0或1被移出丟棄,并用0或1填充左邊的高位(a是正數(shù)時(shí)用0填充,負(fù)數(shù)時(shí)用1填充)。比如:對(duì)整形數(shù)8>>1的計(jì)算8的二進(jìn)制表示:0000,0000,0000,0000,0000,0000,0000,1000右移一位的結(jié)果:0000,0000,0000,0000,0000,0000,0000,0100注意右位移操作是對(duì)整型數(shù)的操作,操作符兩邊必須是整型。
比整型更小的數(shù)據(jù)類型數(shù)據(jù)將被轉(zhuǎn)換成整型進(jìn)行運(yùn)算,比整型更大的數(shù)據(jù)類型數(shù)據(jù)是不能進(jìn)行移位運(yùn)算的。比整型更小的數(shù)據(jù)類型數(shù)據(jù)將被轉(zhuǎn)換成整型時(shí):對(duì)于正數(shù)將高位用0填充;負(fù)數(shù)將高位用1填充。例:bytea=-8;System.out.println(a>>2);結(jié)果:-21111,1111,1111,1111,1111,1111,1111,10001111,1111,1111,1111,1111,1111,1111,1110在進(jìn)行a>>n運(yùn)算時(shí)如果a是byte、short或int型數(shù)據(jù),系統(tǒng)總是先計(jì)算出n%32的結(jié)果m,然后進(jìn)行a>>m運(yùn)算。對(duì)于long型數(shù)據(jù),系統(tǒng)總是先計(jì)算出n%64的結(jié)果m,然后進(jìn)行a>>m運(yùn)算。比如:對(duì)于int數(shù)5>>1與5>>33的結(jié)果相等;對(duì)于long數(shù)5>>1與5>>65的結(jié)果相等。位運(yùn)算符“按位與”運(yùn)算符
&“&”是雙目運(yùn)算符,對(duì)兩個(gè)整型數(shù)據(jù)a、b按位進(jìn)行運(yùn)算,運(yùn)算結(jié)果是一個(gè)整型數(shù)據(jù)c。運(yùn)算法則是:如果a、b兩個(gè)操作數(shù)對(duì)應(yīng)位都是1,則c的該位是1,否則是0。結(jié)果的精度和兩個(gè)操作數(shù)中精度高的相同。inta=3,b=4;System.out.println(a&b);結(jié)果:0a:0000,0000,0000,0000,0000,0000,0000,0011b:0000,0000,0000,0000,0000,0000,0000,0100c:0000,0000,0000,0000,0000,0000,0000,0000“按位或”運(yùn)算符
|“|”是雙目運(yùn)算符,對(duì)兩個(gè)整型數(shù)據(jù)a、b按位進(jìn)行運(yùn)算,運(yùn)算結(jié)果是一個(gè)整型數(shù)據(jù)c。運(yùn)算法則是:如果a、b兩個(gè)數(shù)據(jù)對(duì)應(yīng)位都是0,則c的該位是0,否則是1。結(jié)果的精度和兩個(gè)操作數(shù)中精度高的相同。inta=3,b=4;System.out.println(a&b);結(jié)果:7a:0000,0000,0000,0000,0000,0000,0000,0011b:0000,0000,0000,0000,0000,0000,0000,0100c:0000,0000,0000,0000,0000,0000,0000,0111“按位非”運(yùn)算符
~“~”是單目運(yùn)算符,對(duì)一個(gè)整型數(shù)據(jù)a按位進(jìn)行運(yùn)算,運(yùn)算結(jié)果是一個(gè)整型數(shù)據(jù)c。運(yùn)算法則是:如果a對(duì)應(yīng)位是0,則c的該位是1,否則是0。inta=3;System.out.println(~a);結(jié)果:-4a:0000,0000,0000,0000,0000,0000,0000,0011c:1111,1111,1111,1111,1111,1111,1111,1100“按位異或”運(yùn)算符
^“^”是雙目運(yùn)算符,對(duì)兩個(gè)整型數(shù)據(jù)a、b按位進(jìn)行運(yùn)算,運(yùn)算結(jié)果是一個(gè)整型數(shù)據(jù)c。運(yùn)算法則是:如果a、b兩個(gè)數(shù)據(jù)對(duì)應(yīng)位相同,則c的該位是0,否則是1。結(jié)果的精度和兩個(gè)操作數(shù)中精度高的相同。inta=3,b=4;System.out.println(a^b);結(jié)果:7a:0000,0000,0000,0000,0000,0000,0000,0011b:0000,0000,0000,0000,0000,0000,0000,0100c:0000,0000,0000,0000,0000,0000,0000,0111條件運(yùn)算符條件運(yùn)算符是一個(gè)3目運(yùn)算符。符號(hào)是:“?:”,需要連接3個(gè)操作元。用法:op1?op2:op3op1的值必須是boolean型數(shù)據(jù)運(yùn)算法則當(dāng)op1的值是true時(shí),op1?op2:op3運(yùn)算的結(jié)果是op2的值;當(dāng)op1的值是false時(shí),op1?op2:op3運(yùn)算的結(jié)果是op3的值。3.2控制語句語句概述
Java的語句分為5類。方法調(diào)用語句:對(duì)象名.方法();
表達(dá)式語句:表達(dá)式末尾加上一個(gè)分號(hào)復(fù)合語句:使用”{“和“}”把多個(gè)語句括起來構(gòu)成復(fù)合語句
package語句和import語句:包和類的使用
package包名;import包或者類在JDK中所在的位置;控制語句:順序語句、分支語句、循環(huán)語句和跳轉(zhuǎn)語句分支語句
if-else條件分支語句由一個(gè)“if”、“else”和兩個(gè)復(fù)合語句按一定格式構(gòu)成,是一個(gè)語句。格式:if(表達(dá)式)
{若干語句}
else
{若干語句}
規(guī)則:if后面()內(nèi)的表達(dá)式的值必須是boolean型的。如果表達(dá)式的值為true,則執(zhí)行緊跟著的復(fù)合語句;如果表達(dá)式的值為false,則執(zhí)行else后面的復(fù)合語句。
if-elseif-else多條件語句使用多條件語句根據(jù)多條件來選擇某一操作
if-elseif-else語句是Java中的一條語句
if(表達(dá)式1)
{若干語句}
elseif(表達(dá)式2)
{若干語句}
……
elseif(表達(dá)式n)
{若干語句}
else
{若干語句}if(a+b>c&&a+c>b&&b+c>a){if(a*a==b*b+c*c||b*b==a*a+c*c||c*c==a*a+b*b){System.out.printf("構(gòu)成直角三角形");}elseif(a*a<b*b+c*c&&b*b<a*a+c*c&&c*c<a*a+b*b){System.out.printf("構(gòu)成銳角三角形");}
else{System.out.printf("構(gòu)成鈍角三角形");}}else{System.out.printf("不能構(gòu)成三角形");}
switch開關(guān)語句
switch語句是多分支的開關(guān)語句,用于多分支單選擇格式
switch(表達(dá)式){
case常量值1:
若干個(gè)語句
break;
………
case常量值n:
若干個(gè)語句
break;
default:
若干語句
}此常量值必須和switch后表達(dá)式的值類型一致此表達(dá)式的值必須是整形或字符型,如果用字符類型的‘1’等表示數(shù)字,則不超過‘9’
while循環(huán)一般格式:
while(表達(dá)式){
若干語句
}表達(dá)式
循環(huán)體truefalsewhile循環(huán)語句流程圖表達(dá)式的值必須是boolean類型3.4循環(huán)語句
do-while循環(huán)一般格式:
do{
若干語句
}while(表達(dá)式);循環(huán)體表達(dá)式truefalsedo-while循環(huán)語句流程圖表達(dá)式的值必須是boolean類型
do-while循環(huán)和while循環(huán)又稱為不確定循環(huán)。區(qū)別是:do-while的循環(huán)體至少被執(zhí)行一次。例:分別用while和do-while循環(huán)計(jì)算常數(shù)e的近似值:e=1+1/1+1/2!+1/3!+……doublesum=0,item=1;inti=1;while(i<=1000){sum=sum+item;i++;item=item*(1.0/i);}sum=sum+1;System.out.println("e="+sum);doublesum=0,item=1;inti=1;do{sum=sum+item;i++;item=item*(1.0/i);}while(i<=1000);
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 合伙人技術(shù)入股協(xié)議書合同
- 大班音樂《小白船》課件
- 2024年遼寧駕駛員客運(yùn)從業(yè)資格證考試題及答案
- 2024年重慶2024年客運(yùn)從業(yè)資格證考試試題
- 2024【房屋拆除合同范本】建筑拆除合同范本
- 2024職工食堂承包合同范本
- 2024家居工程裝修合同范本
- 2024農(nóng)村水庫承包合同書
- 2024項(xiàng)目投資咨詢合同版
- 深圳大學(xué)《游泳俱樂部》2023-2024學(xué)年第一學(xué)期期末試卷
- 銀行涉農(nóng)貸款專項(xiàng)統(tǒng)計(jì)制度講解
- DB31-T 540-2022 重點(diǎn)單位消防安全管理要求
- 兒化音變課件
- 國家開放大學(xué)《傳感器與測(cè)試技術(shù)》實(shí)驗(yàn)參考答案
- 工程造價(jià)司法鑒定實(shí)施方案
- 材料成型工藝基礎(chǔ)習(xí)題答案
- 劇本寫作課件
- 計(jì)算方法第三章函數(shù)逼近與快速傅里葉變換課件
- 五年級(jí)上冊(cè)英語課件-Unit7 At weekends第四課時(shí)|譯林版(三起) (共13張PPT)
- 2022年秋新教材高中英語Unit2SuccessTheImportanceofFailure教案北師大版選擇性必修第一冊(cè)
- 初三九年級(jí)青驕第二課堂期末考試題及參考答案
評(píng)論
0/150
提交評(píng)論