第一章java中的運(yùn)算符與控制語句第三講_第1頁
第一章java中的運(yùn)算符與控制語句第三講_第2頁
第一章java中的運(yùn)算符與控制語句第三講_第3頁
第一章java中的運(yùn)算符與控制語句第三講_第4頁
第一章java中的運(yùn)算符與控制語句第三講_第5頁
已閱讀5頁,還剩43頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

java運(yùn)算符與控制結(jié)構(gòu)3.1運(yùn)算符與表達(dá)式運(yùn)算:對(duì)數(shù)據(jù)進(jìn)行的操作運(yùn)算符:表示各種不同運(yùn)算的符號(hào)操作數(shù):參與運(yùn)算的數(shù)據(jù)表達(dá)式:由操作數(shù)和運(yùn)算符按一定的形式組成的有意義的符號(hào)序列

操作數(shù)操作符

1+1=3.2表達(dá)式常見類型3.3賦值運(yùn)算符賦值運(yùn)算的一般形式:

變量=表達(dá)式;3.4算術(shù)運(yùn)算符一元算術(shù)運(yùn)算符二元算術(shù)運(yùn)算符Eg:(a/b)*b+(a%b)==a一個(gè)算術(shù)運(yùn)算的例子public

classArithmaticOp{ public

static

voidmain(String[]args){ inta=5,b=3; intc=++a/b; intc2=a--/b; intc3=a-2%b; doubled=2.5; doubled2=d%3; System.out.println("c="+c); System.out.println("c2="+c2); System.out.println("c3="+c3); System.out.println("d2="+d2); }}3.5關(guān)系運(yùn)算(比較運(yùn)算)Eg:3>5;‘a(chǎn)’<‘z’;(x+y)!=z;classRelationOp{ publicstaticvoidmain(String[]args) { inta=25,b=3; booleand=a>b; booleand1=3.5<2.6; booleand2='A'<='A'; booleand3=false!=true; booleane=a>=a*2-b*9; System.out.println

(“

d="+d); System.out.println("d1="+d1); System.out.println("d2="+d2); System.out.println("d3="+d3); System.out.println

(“

e="+e); }}3.6邏輯運(yùn)算邏輯運(yùn)算真值表根據(jù)x和y的邏輯值,判斷后列答案的正確性提示:&&和||又叫做短路運(yùn)算符。在由他們連接組成的邏輯表達(dá)式的求值過程中,總是先求出運(yùn)算符左邊的表達(dá)式,再根據(jù)具體情況決定是否需要計(jì)算運(yùn)算符右邊得表達(dá)式。對(duì)“||”運(yùn)算,如果左邊的表達(dá)式的值為true,則不必對(duì)運(yùn)算符右邊的表達(dá)式在進(jìn)行計(jì)算,整個(gè)表達(dá)式的結(jié)果就為true;對(duì)“&&”運(yùn)算,如果左邊的表達(dá)式的值為false,則不必在運(yùn)算符右邊的表達(dá)式在進(jìn)行運(yùn)算,整個(gè)表達(dá)式的結(jié)果為false。3.6位運(yùn)算符X<<8x*2的8次方,X<<1x*2的1次方X>>nx/2的n次方

面試題1.按位運(yùn)算(1)“~”是按位取反運(yùn)算符,對(duì)數(shù)據(jù)的每個(gè)二進(jìn)制位取反。即把1變成0,把0變成1.例如:~00001111=11110000;按位運(yùn)算通常的2種用法先對(duì)某個(gè)數(shù)當(dāng)中某個(gè)特定的位置清零

如對(duì)10010110從右邊數(shù)第二位清零,只需將此數(shù)與11111101進(jìn)行按位與運(yùn)算

1001011011111101-------------------------10010100(其他位不變,只有從右邊數(shù)第二位清零)取某個(gè)數(shù)中某些指定的位

如要取數(shù)10010110中從右邊數(shù)第二位,只需將此數(shù)與00000010進(jìn)行按位與運(yùn)算。

1001011000000010-----------------------00000010

(從右邊數(shù)第二位不變,其他位清零)(3)“|”是按位或運(yùn)算符,同樣要求有兩個(gè)操作數(shù)進(jìn)行運(yùn)算。只要兩個(gè)相應(yīng)位中有一個(gè)位1,則該位的結(jié)果位1,否則結(jié)果為0.即:

0|0=0,0|1=1,1|0=1,1|1=1例如:

1010000101000001----------------------------11100001注意:按位或運(yùn)算可以用來將某個(gè)數(shù)中的某些特定的位置1,如:要對(duì)數(shù)10010110從右數(shù)第4位置1,只需要將此數(shù)00001000進(jìn)行按位或運(yùn)算:

1001011000001000------------------------------10011110(其他位不變,只有第4位置1)(4)“^”是按位異運(yùn)算符,同樣要求有兩個(gè)操作數(shù)進(jìn)行運(yùn)算。如果有個(gè)兩相應(yīng)位相同,則該位的結(jié)果位0,否則結(jié)果為1,即:0^0=0,0^1=1,1^0=1例如:

1010000101000001---------------------------11100000“&”是按位運(yùn)算。要求有兩個(gè)操作數(shù)進(jìn)行運(yùn)算。如果兩個(gè)相應(yīng)位均為1,則該位的結(jié)果位1,否則結(jié)果為0.0&0=0,0&1=0,1&0=0,1&1=1例如:

10100001&)01000001----------------------------00000001按位異運(yùn)算符通常的2種用法用來將某個(gè)數(shù)中某些特定的位取反.如要使數(shù)10010110從右數(shù)第2位取反,只需要將此數(shù)與00000010進(jìn)行按位異或運(yùn)算即可.

1001011000000010-------------------------10010100(其他位不變,只從右數(shù)第2位取反)通過異或運(yùn)算,實(shí)現(xiàn)兩個(gè)數(shù)的交換,不需要使用臨時(shí)變量例如:要交換兩個(gè)整數(shù)a和b值可通過以下語句實(shí)現(xiàn)

a=11000001;b=01100000;

a=a^b;//此時(shí)a=10100001b=b^a;//此時(shí)b=11000001a=a^b;//此時(shí)a=01100000“&”,“|”和“^”用在布爾型操作數(shù)上時(shí)的運(yùn)算規(guī)則余下的作為現(xiàn)在的作業(yè),馬上就做提示細(xì)節(jié)--&與&&,|與||(3>9&&5>2)(3>9&5>2)當(dāng)(3>9)結(jié)果為false時(shí),&&不論是什么,都是不計(jì)算1.&與&&

即使當(dāng)&時(shí),前面是false時(shí),后面的式子也執(zhí)行(9>3||5<8)(9<3|5<8)2.|與||1當(dāng)是true時(shí),不去執(zhí)行后面的表達(dá)式,結(jié)果都是true。不管是false或true1后面的表達(dá)式都執(zhí)行三元運(yùn)算符=三目運(yùn)算符“?:”叫條件運(yùn)算符。表達(dá)式1?表達(dá)式2:表達(dá)式3;

解析:

如果1成立,則執(zhí)行2.否則就執(zhí)行3三元運(yùn)算--習(xí)題publicclassTest2{ publicstaticvoidmain(String[]args){ intx=335; inty=212; intz=38; inta,b=10,max,min; System.out.println("原來的整數(shù)值為:x="+x+";y="+y+";z="+z); a=(x>0?x:y); max=(a>z?a:z); min=(b<z?b:z); System.out.println("最大的元素值為:"+max); System.out.println("最小的元素值為:"+min); }}流程控制語句語句—程序的基本組成單位.每個(gè)語句以”;”結(jié)束語句可以是:shorts=125;也可以是用{shorts=125;inti=10;;}括起來的復(fù)合語句.(一般一言叫做語句塊).空語句--僅僅由一個(gè)”;”組成的語句,叫空語句.作用:通常用做程序的流程控制中的過渡語句.幾種流程控制語句循環(huán)結(jié)構(gòu)1.3種循環(huán)語句(1)while語句(也可以成為”當(dāng)型”循環(huán))

一般格式:while(布爾型表達(dá)式){

循環(huán)體;}布爾型表達(dá)式:關(guān)系型表達(dá)式,邏輯型表達(dá)式,

布爾型變量,常量例題用while語句求100以內(nèi)的所有奇數(shù)和inti,sum;sum=0;i=1;while(i<=100){ sum+=i;i+=2;}System.out.println(sum);(2)do-while語句(“直到”型循環(huán))do-while語句的一般格式

do{

循環(huán)體;}while(布爾型表達(dá)式);解析:

先執(zhí)行do后循環(huán)體,

然后去判斷while后面的布爾型表達(dá)式例題用while語句求100以內(nèi)的所有奇數(shù)和inti,sum;sum=0;i=1;do{ sum+=i;i+=2;}while(i<=100);System.out.println(sum);注意區(qū)別while和do-while的語句執(zhí)行順序for語句一般表示形式:for(表達(dá)式1;表達(dá)式2;表達(dá)式3){

循環(huán)體表達(dá)式4}例如:要使某段代碼循環(huán)1000次for(inti=0;i<=1000;i++){

循環(huán)語句體;(代碼段)}(3)for語句(“當(dāng)”型循環(huán))如果遇到死循環(huán)

CTRL+C來終止程序的運(yùn)行,然后打開源程序進(jìn)行檢查修改錯(cuò)誤,重新編譯運(yùn)行intsum=0;for(inti=1;i<=100;i+=2){ sum+=i;}System.out.println(sum);例題用for語句求100以內(nèi)的所有奇數(shù)和2.循環(huán)的嵌套編寫輸出一個(gè)1~9的乘法表inta,b;for(b=0;b<=9;b++){//控制的是行數(shù) for(a=0;a<=b;a++){//控制列數(shù) System.out.print(a+”*”+b+”=”+a*b+’\t’); System.out.println(); }}例題用for語句求999以內(nèi)的和intsum=0;inti;for(i=1;i<1000;i++){ sum+=i;}System.out.println(“sum=”+sum+”andi=”+i);3.循環(huán)結(jié)構(gòu)中的continue語句一般格式:continue標(biāo)號(hào);a.不代標(biāo)號(hào)continue語句作用:結(jié)束本次循環(huán)語句(終止當(dāng)前循環(huán)的本輪循環(huán).并且直接開始下一輪循環(huán))b.代標(biāo)號(hào)的continue語句作用:把程序直接指向標(biāo)號(hào)所指定的循環(huán)結(jié)構(gòu)的下一次循環(huán).例題不帶標(biāo)號(hào)的continue習(xí)題/**

找出21世紀(jì)的所有閏年,并將結(jié)果以每行10個(gè)年分的形式輸出*時(shí)間:2008年7月22日*地點(diǎn):教室*/publicclassEndInnerLoop{/***能被4整除,但不能被100整除的。*能被100整除,又能被400整除的。*/publicstaticvoidmain(String[]args){System.out.println("21世紀(jì)的所有閏年有:");intn=0;//計(jì)數(shù)作用。for(intyear=2000;year<3000;year+=4){if(year%100==0&&year%400!=0)continue;//跳出“本次”循環(huán)語句

System.out.print(year+"\t");n++;if(n<10)continue;//跳出“本次”循環(huán)語句

System.out.println();n=0;}}}例題帶標(biāo)號(hào)的continue習(xí)題/***打印一個(gè)三角型的0~9的乘法表

*/publicclassContinueLabel{publicstaticvoidmain(String[]args){outer:for(inti=0;i<10;i++){//行i

for(intj=0;j<10;j++){//列jif(j>i)//列大于行。

{System.out.println("");continueouter;}System.out.print(""+i+"*"+j+"="+(i*j));}}}}break語句break語句的一般語法格式:break標(biāo)號(hào);break語句通常情有2種使用情況.(1)不帶標(biāo)號(hào)的情況

作用:終止brake所在的循環(huán),轉(zhuǎn)去執(zhí)行其后的第一條語句.(2)帶標(biāo)號(hào)的情況

作用:終止由標(biāo)號(hào)指出的語句塊的執(zhí)行,并總從緊跟該塊的第一條語句處開始往下執(zhí)行.例題:不帶標(biāo)號(hào)的break語句:

----編寫找出大于1000的第三個(gè)素?cái)?shù)publicclassBreakDemo{publicstaticvoidmain(String[]args){intn=0; intb=999; outer://外層循環(huán),定義一個(gè)標(biāo)號(hào)。

do{ b+=2;intm=(int)Math.ceil(Math.sqrt(b));//取得大于或等于要判斷的數(shù)的平方根的最小值

for(inti=2;i<=m;i++){//內(nèi)層循環(huán),判斷b是否為素?cái)?shù)。

if(b%i==0) continueouter; } n++; if(n==3) break; } while(true); System.out.println("大于1000的第三個(gè)素?cái)?shù)是:"+b); }}例題:帶標(biāo)號(hào)的break語句publicclassBreakDemo1{publicstaticvoidmain(String[]args){ intsum=0; coloop: while(sum<=100){ for(intcount=1;count<10;count++){ sum+=count; if(sum>60) breakcoloop; } } System.out.println("sum="+sum); }}注意:在循環(huán)和判斷中使用標(biāo)號(hào)要遵守以下規(guī)則:如果break語句中使用了一個(gè)標(biāo)號(hào),這個(gè)標(biāo)號(hào)必須聲明在一個(gè)封閉語句的前面;如果continue語句中只用了一個(gè)標(biāo)號(hào),這個(gè)標(biāo)號(hào)必須是一個(gè)封閉標(biāo)號(hào).選擇語句(1)if-else語句

if-else語句根據(jù)判斷條件的真假來執(zhí)行兩種操作中的一種.A.簡(jiǎn)單形式

if-else語句的一般語法形式為:if(布爾表達(dá)式){

語句1;}[else{語句2}]B.if語句的嵌套1.嵌套的常用格式

溫馨提示

  • 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. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論