第二章验夯、java語言基礎(chǔ)-運(yùn)算符詳解

3塘幅、運(yùn)算符

算術(shù)運(yùn)算符

關(guān)系運(yùn)算符

邏輯運(yùn)算符

字符串連接運(yùn)算符

三元運(yùn)算符

賦值類運(yùn)算符

1、算術(shù)運(yùn)算符

+求和

-相減

*乘積

/商

%求余

++自加(b=k++是先賦值再自加1帝牡,b=++k是先自加1再賦值。

e=100;

system.out.println(e++);100

system.out.println(e);101

--自減

運(yùn)算符有優(yōu)先級蒙揣,沒有必要刻意記住優(yōu)先級靶溜,不確定就用括號確定優(yōu)先級

2、關(guān)系運(yùn)算符

>大于

<小于

==等于

<=小于等于

>=大于等于

!=不等于

3懒震、邏輯運(yùn)算符(邏輯運(yùn)算符要求兩邊的算子必須是布爾類型罩息,并且最終的返回結(jié)果也是布爾類型)

& 與

| 或

! 非

^ 邏輯異或

&& 短路與(運(yùn)算結(jié)果跟邏輯與完全相同个扰,但是在int x=10瓷炮,inty=8;system.out.println(x<y&++x<y)時&前面是false已經(jīng)是false了但是還是會執(zhí)行后面的表達(dá)式

使得y的值會自加递宅,而int x=10娘香,inty=8;system.out.println(x<y&&++x<y))時&前面是false已經(jīng)是false了后面的++x<y就不執(zhí)行也不判斷了办龄。

|| 短路或

4烘绽、賦值類運(yùn)算符;

基本賦值運(yùn)算符

=

先執(zhí)行等號右邊的表達(dá)式俐填,將執(zhí)行的結(jié)果賦值給右邊的變量安接。(k++)不是這樣的

擴(kuò)展的賦值運(yùn)算符

+=:i+=5等同于i=i+5

-=:i-=5等同于i=i-5

*=:i*=5等同于i=i*5

/=:i/=5等同于i=i/5

%=:i%=5等同于i=i%5

byte b=10;

b=b+5;

編譯會報錯,因為b是byte類型玷禽,5是int類型赫段,加到一起是int類型,這是必須要進(jìn)行變量數(shù)據(jù)類型轉(zhuǎn)換矢赁。

改為b=(byte)(b+5)糯笙;

byte b=10;

b+=5;

編譯可以通過,因為b+=5;和b=b+5;并不相同撩银,而是與b=(byte)(b+5)相同给涕。

結(jié)論:擴(kuò)展類的賦值運(yùn)算符不改變運(yùn)算結(jié)果類型。

5额获、java中的“+”運(yùn)算符够庙;

1、加法運(yùn)算:+運(yùn)算符兩邊是數(shù)字抄邀,進(jìn)行的是加法運(yùn)算

2耘眨、字符串的連接運(yùn)算:1、+號兩邊都是字符串2境肾、+號兩邊有一個是字符串剔难,返回結(jié)果還是字符串胆屿。

3、在一個表達(dá)式當(dāng)中可以出現(xiàn)多個“+”偶宫,在沒有添加小括號的前提下非迹,遵守從左向右順序依次運(yùn)算。

system.out.println(10+20+"30")輸出結(jié)果是3030

system.out.println(10+(20+"30"))輸出結(jié)果是102030

int a=10纯趋;

int b=20憎兽;

system.out.println(“10+20=”+a+b)//“10+20=1020”

system.out.println(“10+20=”+(a+b))//“10+20=30”

system.out.println(a+"+"+b+"="+(a+b))//“動態(tài)表示a+b”

引用類型string

string是sun公司在javase中提醒的字符串類型

string.class字節(jié)碼文件,

string是引用數(shù)據(jù)類型吵冒,s是變量名纯命,“abc”是string類型的字面值

string s=“abc”;

6桦锄、三元運(yùn)算符:

布爾表達(dá)式扎附?表達(dá)式1:表達(dá)式2蔫耽;

三元運(yùn)算符執(zhí)行原理结耀;當(dāng)布爾表達(dá)式的結(jié)果是真的時候選表達(dá)式1的結(jié)果作為表達(dá)式結(jié)果否則選擇表大四2作為執(zhí)行結(jié)果。

boolea sex=false;

sex匙铡?"nan":"nv"

編譯會報錯图甜,因為"nan"和"nv"不是語句

boolea sex=false;

string? c=sex?"nan":"nv"

system.out.println(c);

編譯通過

string? c=sex鳖眼?"nan":'nv'//編譯不通過黑毅,不符合語法,又有字符串又有字符是無法賦值給同一個類型的變量钦讳。

system.out.println(c);

//編譯通過矿瘦,println既可以打印字符有可以打印字符串

system.out.println(string? c=sex?"nan":'nv');

7愿卒、控制語句

if語句語法:四種編寫方式(只要一個分支執(zhí)行程序在執(zhí)行完該分支后程序立刻就結(jié)束)

1缚去、if(布爾表達(dá)式)

{

Java語句

}

2、if(布爾表達(dá)式)

{

java語句

}

else{

java語句

}

3琼开、if(布爾表達(dá)式)

{

java語句

}

else if(布爾表達(dá)式)

{

java表達(dá)式

}

else if(布爾表達(dá)式)

{

java表達(dá)式

}

else if(布爾表達(dá)式)

{

java表達(dá)式

}

else if(布爾表達(dá)式)

{

java表達(dá)式

}

else if(布爾表達(dá)式)

{

java表達(dá)式

}

else if(布爾表達(dá)式)

{

java表達(dá)式

}

4易结、if(布爾表達(dá)式)

{

java語句

}

else if(布爾表達(dá)式)

{

java表達(dá)式

}

else if(布爾表達(dá)式)

{

java表達(dá)式

}

else if(布爾表達(dá)式)

{

java表達(dá)式

}

else if(布爾表達(dá)式)

{

java表達(dá)式

}

else if(布爾表達(dá)式)

{

java表達(dá)式

}

else if(布爾表達(dá)式)

{

java表達(dá)式

}

else

{

java表達(dá)式

}

只要有else的語句就保證至少有一個分支執(zhí)行,但是沒有else語句柜候,就不是一定執(zhí)行至少一個分支搞动。

在寫代碼時必須要縮進(jìn)保證可讀性。

if語句中如果只有一條java語句時渣刷,大括號可以不寫鹦肿,但這種方式不推薦使用但別人寫要能看

鍵盤輸入的語句

public class KeyInputTest

{

public static void main(String[]args)

{ //創(chuàng)建鍵盤掃描器對象

java.uti1.Scanner s=new java.util.Scanner(System.in);

//第二步;調(diào)用Scanner對象的next()方法開始接收輸入

//當(dāng)用戶輸入的時候辅柴,并且最終敲回車鍵的時候箩溃,鍵入的信息會自動賦值給userInputContent

//程序執(zhí)行到這里高诺,用戶輸入的信息已經(jīng)在內(nèi)存條中了

String userInputContent=s.next();//輸入字符串

int userInputContent=s.nextint();//輸入數(shù)字值

//將內(nèi)存中的數(shù)據(jù)輸出到控制臺

system.out.println("您輸入了"+userInputContent);

}

}

判斷天氣:

public class KeyInputTest

{

public static void main(String[]args)

{ //創(chuàng)建鍵盤掃描器對象

java.uti1.Scanner s=new java.util.Scanner(System.in);

system.out.println("歡迎使用本系統(tǒng)");

system.out.println("說明1:1表示下雨,0表示晴天");

system.out.println("說明2:1表示男碾篡,0表示女");

system.out.println("說明3:溫度為數(shù)字");

system.out.println("請輸入當(dāng)前天氣情況:");

String userInputContent=s.next("請輸入當(dāng)前天氣情況:");//提示輸入天氣

int weather=s.nextint();//輸入天氣

//將內(nèi)存中的數(shù)據(jù)輸出到控制臺

判斷天氣情況

if ( weather==1)

{

system.out.println("下雨天");

{

else if(weather==0)

{

system.out.println("下雨天");

}

}

}

控制語句:

選擇結(jié)構(gòu)

1虱而、switch語句

2、語法結(jié)構(gòu)switch也是選擇結(jié)構(gòu)开泽,也是分支語句

語法:

switch(int或者string類型的字面值或者變量)

{

case int或者string類型的字面值或者變量牡拇;

java語句

break;

case int或者string類型的字面值或者變量穆律;

java語句

break惠呼;

case int或者string類型的字面值或者變量;

java語句

break峦耘;

.........

default://所有情況都不符合

java語句

}

3剔蹋、switch語句的執(zhí)行原理:

switch后面小括號當(dāng)中的數(shù)據(jù)和后面case后面的數(shù)據(jù)進(jìn)行一一匹配,匹配成功的分支執(zhí)行

自上而下的順序以此匹配

4辅髓、匹配成功的分支執(zhí)行泣崩,分支當(dāng)中最后有break語句的話,整個switch語句終止洛口。

5矫付、匹配成功的分支執(zhí)行,分支中沒有break語句的話第焰,直接進(jìn)入下一個分支執(zhí)行买优,不進(jìn)行匹配。這種現(xiàn)象被稱為穿透的現(xiàn)象挺举。

6杀赢、所有分支都沒有匹配成功,當(dāng)有default的語句時湘纵,會執(zhí)行default分支里面的語句脂崔。

7、switch后面和case后面只能是int或者string類型的數(shù)據(jù)瞻佛,不能參測其他類型脱篙,其他類型的數(shù)據(jù)當(dāng)作為參數(shù)時會被默認(rèn)轉(zhuǎn)換成int和string類型,并且在大轉(zhuǎn)小的時候會報錯可能精度錯誤伤柄。

8绊困、case可以合并;

int i=10适刀;

switch(i)

{case1:case2:case3:case10秤朗;

system.out.println("Test code!");

}//在i為1,2,3,10的時候執(zhí)行語句。

pubulic class switch_Test

{

public static void main(string[]args

{

long X=100L;

switch(X){}//編譯會報錯笔喉,因為X是長整型取视,默認(rèn)轉(zhuǎn)換成int類型后硝皂,報錯可能損失精度。

long X=100L;

switch((int)X){}//這次編譯通過作谭,因為已經(jīng)轉(zhuǎn)換完全稽物,這是就是用括號中的數(shù)據(jù)進(jìn)行判斷。

}

}

實現(xiàn)計算器:

思路:1折欠、選擇所有數(shù)據(jù)從鍵盤上輸入

? 2贝或、使用switch語句進(jìn)行判斷

? 3、需要從控制臺輸入三次:

*第一個數(shù)字:10

*輸入運(yùn)算符+

*請輸入第二個數(shù)字:20

*運(yùn)算結(jié)果:10+20=30

public class switch04

{

public static void main(string[]args)

{

java.util.scanner s=new java.util.scanner(system.in);

system.out.println("歡迎使用簡單計算器系統(tǒng)");

system.out.println("請輸入第一個數(shù)字");

int num1=s.nextint()

system.out.println("請輸入第一個運(yùn)算符");

int operator=s.next();

system.out.println("請輸入第二個數(shù)字");

int num2=s.nextint();

switch(operator)

{ case"+":

result=nuum1+num2;

break;

case"-":

result=nuum1-num2;

break;

case"*":

result=nuum1*num2;

break;

case"/":

result=nuum1*num2;

break;

default:

system.out.println("只能計算加減乘除");

}

system.out.println("計算結(jié)果為"+result);

}

}

循環(huán)語句:

循環(huán)結(jié)構(gòu):在程序當(dāng)中總有一些代碼必須重復(fù)執(zhí)行锐秦;需要重復(fù)執(zhí)行的代碼放在循環(huán)體里咪奖,在聯(lián)合計數(shù)器,共同控制這段按需要反復(fù)之行的代碼酱床。

總共有三種循環(huán):

for循環(huán)

while循環(huán)

do..while循環(huán)

1羊赵、for循環(huán)

語法;

for(初始化表達(dá)式扇谣;布爾表達(dá)式昧捷;更新表達(dá)式)

{

需要重復(fù)的代碼片段

}

1、初始化表達(dá)式揍堕、布爾表達(dá)式料身、更新表達(dá)式都不是必須的必須的是兩個分號

2、初始化表達(dá)式最先執(zhí)行衩茸,并且只在循環(huán)中執(zhí)行一次

3、先進(jìn)行初始換表達(dá)式贮泞,1楞慈、判斷布爾表達(dá)式,2啃擦、執(zhí)行循環(huán)體囊蓝,3、執(zhí)行更新表達(dá)式令蛉,1聚霜、然后布爾表達(dá)式,2珠叔、若為真然后執(zhí)行循環(huán)體蝎宇,3、執(zhí)行更新表達(dá)式祷安,1然后布爾表達(dá)式姥芥。

public class for_Test

{

public static void main(string[]args)

{ int i=0;

for(;i<=10;i++)

{

system.out.println("i="+i);//此時只能輸出i=0,因為for循環(huán)對變量的作用只在for循環(huán)中有作用汇鞭,出了for循環(huán)就不會有任何作用凉唐。

}

}

}

2庸追、while循環(huán):

語法:

1、while循環(huán)的語法結(jié)構(gòu):

while(布爾表達(dá)式)

{

循環(huán)體台囱;

}

語法結(jié)構(gòu):

執(zhí)行原理

先判斷布爾表達(dá)式淡溯,再執(zhí)行循環(huán)體,判斷布爾表達(dá)式

執(zhí)行次數(shù)

0到N

3簿训、do......while 循環(huán)

語法結(jié)構(gòu):

do{

循環(huán)體血筑;

? }

while(布爾表達(dá)式);

執(zhí)行原理 先執(zhí)行再判斷

執(zhí)行次數(shù) 1到N次

注意事項注意while(布爾表達(dá)式)后面的分號別丟了。

控制循環(huán)的語句煎楣;

1豺总、break語句:跳出內(nèi)層for循環(huán),使得循環(huán)結(jié)束择懂。不影響外層循環(huán)

forA:for (int j=0;j<=9 ; j++)

{

forB:for (inti=0;i<=10 ;i++ )

{

if(i==5)

{

break forA//此時可以直接跳出最外層循環(huán)

}

}

}

2喻喳、comtinue語句:跳出本次循環(huán),進(jìn)入下一次循環(huán)困曙。不影響外層循環(huán)

方法:

方法的基礎(chǔ)語法以及方法的重載機(jī)制:overload

某個功能的代碼只需要寫一遍表伦,使用這個功能只需要傳遞具體的數(shù)據(jù)即可,這個功能完成后返回一個最終的結(jié)果慷丽。這樣的代碼可以重復(fù)的使用這就是方法

使用這個方法我們成為調(diào)用invoke蹦哼,方法在c語言中又叫做函數(shù)。

方法的定義可以在任何位置要糊,因為只有調(diào)用時才有順序纲熏,但是不能在方法中再定義方法,在方法體中代碼遵守自上而下的順序依次執(zhí)行锄俄。

語法

語法結(jié)構(gòu):[修飾符列表]返回值類型 方法名(形式參數(shù)列表)

{

方法體局劲;

}

注意:

1、關(guān)于修飾符選項:

可選項不是必須的

目前統(tǒng)一寫成:public static【以后講】

方法的修飾符列表當(dāng)中有static關(guān)鍵字的話奶赠,怎么調(diào)用這個方法鱼填?

類名.方法名(實際參數(shù)列表)

2、返回值類型:

返回值是調(diào)用方法后方法最終給出的結(jié)果

返回值類型包括所有基本數(shù)據(jù)類型和所有的引用數(shù)據(jù)類型

有些方法沒有返回值毅戈,那么返回值類型必須寫個void

寫代碼的時候苹丸,return語句必須在沒有void關(guān)鍵字的所有方法里存在,但是return的值必須與方法定義的時候返回值類型必須要相同苇经。

寫代碼return 值赘理;就可以返回值了,只要帶有return的語句執(zhí)行塑陵,這個return語句所在的方法結(jié)束感憾。

3、方法名;

只要是合法的標(biāo)識符就行

方法名最好見名知意

方法名遵序駝峰命名規(guī)則

方法名首字母要求小寫阻桅,后面每一個單詞的首字母大寫

4凉倚、形式參數(shù)列表

形參是局部變量,且可以有多個形參嫂沉,不同的形參用“稽寒,”隔開,調(diào)用形參時實參必須與形參的數(shù)據(jù)類型相同趟章。實參列表和形參列表必須滿足數(shù)量相同杏糙,且類型對應(yīng)相同。

如果類型不同將會進(jìn)行自動數(shù)據(jù)類型轉(zhuǎn)換蚓土。

5宏侍、方法體

方法體必須由大括號括起來

方法體中的代碼必須有順序

自上而下執(zhí)行

每一個方法體必須由java語句組成,每一個java語句必須以蜀漆;結(jié)尾

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末谅河,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子确丢,更是在濱河造成了極大的恐慌绷耍,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,252評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鲜侥,死亡現(xiàn)場離奇詭異褂始,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)描函,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評論 3 399
  • 文/潘曉璐 我一進(jìn)店門崎苗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人赘阀,你說我怎么就攤上這事益缠。” “怎么了基公?”我有些...
    開封第一講書人閱讀 168,814評論 0 361
  • 文/不壞的土叔 我叫張陵,是天一觀的道長宋欺。 經(jīng)常有香客問我轰豆,道長,這世上最難降的妖魔是什么齿诞? 我笑而不...
    開封第一講書人閱讀 59,869評論 1 299
  • 正文 為了忘掉前任酸休,我火速辦了婚禮,結(jié)果婚禮上祷杈,老公的妹妹穿的比我還像新娘斑司。我一直安慰自己,他們只是感情好但汞,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,888評論 6 398
  • 文/花漫 我一把揭開白布宿刮。 她就那樣靜靜地躺著互站,像睡著了一般膨报。 火紅的嫁衣襯著肌膚如雪律歼。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,475評論 1 312
  • 那天侈咕,我揣著相機(jī)與錄音磕潮,去河邊找鬼翠胰。 笑死,一個胖子當(dāng)著我的面吹牛自脯,可吹牛的內(nèi)容都是我干的之景。 我是一名探鬼主播,決...
    沈念sama閱讀 41,010評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼膏潮,長吁一口氣:“原來是場噩夢啊……” “哼锻狗!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起戏罢,我...
    開封第一講書人閱讀 39,924評論 0 277
  • 序言:老撾萬榮一對情侶失蹤屋谭,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后龟糕,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體桐磁,經(jīng)...
    沈念sama閱讀 46,469評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,552評論 3 342
  • 正文 我和宋清朗相戀三年讲岁,在試婚紗的時候發(fā)現(xiàn)自己被綠了我擂。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,680評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡缓艳,死狀恐怖校摩,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情阶淘,我是刑警寧澤衙吩,帶...
    沈念sama閱讀 36,362評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站溪窒,受9級特大地震影響坤塞,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜澈蚌,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,037評論 3 335
  • 文/蒙蒙 一摹芙、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧宛瞄,春花似錦浮禾、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蝴簇。三九已至,卻和暖如春挣轨,著一層夾襖步出監(jiān)牢的瞬間军熏,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評論 1 274
  • 我被黑心中介騙來泰國打工卷扮, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留荡澎,地道東北人。 一個月前我還...
    沈念sama閱讀 49,099評論 3 378
  • 正文 我出身青樓晤锹,卻偏偏與公主長得像摩幔,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子鞭铆,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,691評論 2 361

推薦閱讀更多精彩內(nèi)容