從零學(xué)java筆錄-第13篇 程序流程控制(三)

本文是《凱哥陪你學(xué)系列之java基礎(chǔ)篇》燥爷。歡迎關(guān)注本賬號(hào)寄摆,持續(xù)更新中~

本講主要內(nèi)容:

1:選擇語(yǔ)句(下)

2:switch練習(xí)1谅辣、練習(xí)2

3:switch和if的區(qū)別

char練習(xí):

需求:

根據(jù)用戶(hù)輸入的符號(hào),對(duì)a b進(jìn)行對(duì)應(yīng)的操作

代碼

class SwitchCharDemo{

public static void main(String[] args){

//需求 :根據(jù)用戶(hù)輸入的符號(hào)婶恼,對(duì)a b進(jìn)行對(duì)應(yīng)的操作

int a = 9;

int b = 3;

char c = '+';

switch(c){

case '+':

System.out.println("a + b = " + (a+b));

break;

case '-' :

System.out.println("a - b = "+(a-b));

break;

case '*' :

System.out.println("a * b = " +(a * b));

break;

case '/' :

System.out.println("a/b = " + (a/b));

break;

default:

System.out.println("哥們我不認(rèn)識(shí)這個(gè)符號(hào)");

break;

}

}

}

結(jié)果:

break是否可以省略桑阶。

答:部分可以省略。

分析原因:

從上面練習(xí)我們知道switch 結(jié)束方式之一就是當(dāng)遇到break的時(shí)候就返回不往下執(zhí)行了勾邦。

結(jié)束方式二:就是當(dāng)執(zhí)行到}大括號(hào)時(shí)候蚣录,整個(gè)代碼塊執(zhí)行完畢就跳出switch了。

所以眷篇,當(dāng)離大括號(hào) }最近的一個(gè)break可以省略不寫(xiě)萎河。

那么其他位置的break可以不寫(xiě)嗎?

不能=侗虐杯!

代碼體現(xiàn):

修改上面練習(xí)代碼,將其中的break都注釋掉:

class SwitchCharDemoBreak{

public static void main(String[] args){

//需求 :根據(jù)用戶(hù)輸入的符號(hào)椎椰,對(duì)a b進(jìn)行對(duì)應(yīng)的操作

int a = 9;

int b = 3;

char c = '+';

switch(c){

case '+':

System.out.println("a + b = " + (a+b));

//break;

case '-' :

System.out.println("a - b = "+(a-b));

//break;

case '*' :

System.out.println("a * b = " +(a * b));

//break;

case '/' :

System.out.println("a/b = " + (a/b));

//break;

default:

System.out.println("哥們我不認(rèn)識(shí)這個(gè)符號(hào)");

//break;

}

}

}

運(yùn)行結(jié)果

從結(jié)果可以看:程序凌亂了O梅!沒(méi)錯(cuò)慨飘,程序已經(jīng)被你搞的凌亂了确憨。

switch 練習(xí)1

需求:

模擬用戶(hù)坐電梯。樓層共有10層瓤的,其中1-4層電梯不停休弃,當(dāng)?shù)搅擞脩?hù)輸入的電梯層數(shù)時(shí)候提醒當(dāng)前電梯層數(shù)并停止,等待用戶(hù)出去圈膏。

代碼:

class SwitchTest{

public static void main(String[] args){

int lift = 4;

if(lift >1 && lift<=4){

System.out.println("本電梯在1-4層不停");

}else{

switch(lift){

case 5:

System.out.println("五層已到");

break;

case 6 :

System.out.println("六層已到");

break;

case 7 :

System.out.println("七層已到");

break;

case 8 :

System.out.println("八層已到");

break;

case 9 :

System.out.println("九層已到");

break;

case 10 :

System.out.println("頂層已到");

default:

System.out.println("首層已到");

break;

}

}

}

}

當(dāng)輸入的數(shù)1-4的時(shí)候:

當(dāng)輸入5—10的時(shí)候

switch練習(xí)2:

練習(xí)目的:學(xué)習(xí)多個(gè)case并用

需求:

根據(jù)用戶(hù)輸入的月份塔猾,輸出對(duì)應(yīng)的季節(jié)

提示:3-5月是春季,6-8月是夏季 9-11月是秋季 12-2月是冬季

思路分析:

1:根據(jù)提示 3-5月是春季稽坤。

那么是不是 case 3:

System.out.println("春季");

case 4:

System.out.println("春季");

case 5:

System.out.println("春季");

其他以此類(lèi)推丈甸。

這樣做糯俗,可以是可以,但是效率不高睦擂。

case有沒(méi)有 比如 大于等于 3小于等于5的得湘?

答案是:肯定沒(méi)有!

那可不可以實(shí)現(xiàn)類(lèi)似的效果呢顿仇?

答案:這個(gè)可以有淘正,真可以有!

寫(xiě)法:

case 3:

case 4:

case 5臼闻;

System.out.println("春季");

代碼:

class SwitchTest2{

public static void main(String[] args){

int moth = 6;

switch(moth){

case 3:

case 4:

case 5:

System.out.println(moth +"月份是春季");

break;

case 6:

case 7:

case 8:

System.out.println(moth +"月份是夏季");

break;

case 9:

case 10:

case 11:

System.out.println(moth +"月份是秋季");

break;

case 12:

case 1:

case 2:

System.out.println(moth +"月份是冬季");

break;

default:

System.out.println("地球上不存在"+moth +"月份");

break;

}

}

}

輸出結(jié)果:

思考:

我們知道一年就只有12個(gè)月份鸿吆。上面的代碼是否可以?xún)?yōu)化?

提示:可以和判斷語(yǔ)句配合使用

switch語(yǔ)句和判斷語(yǔ)句(if)的區(qū)別:

從上面星期的demo中我們可以看出述呐,使用if判斷語(yǔ)句也可以實(shí)現(xiàn)同樣的效果惩淳。

那么問(wèn)題來(lái)了,什么時(shí)候使用switch市埋?什么時(shí)候使用if判斷語(yǔ)句黎泣?這兩個(gè)又有什么區(qū)別呢?

分析if和switch的特點(diǎn)

if特點(diǎn):

1:對(duì)具體的值進(jìn)行判斷? 比如 3>2

2:對(duì)區(qū)間判斷 比如 3

3:運(yùn)算結(jié)果是boolean類(lèi)型的表達(dá)式進(jìn)行判斷的

if(表達(dá)式):其中表達(dá)式結(jié)果只能是true或者是false缤谎。

switch特點(diǎn):

1:對(duì)具體的值進(jìn)行判斷的 比如 int x = 3 case 3:

2:值的個(gè)數(shù)通常是固定的且不會(huì)太多。比如 + 褐着、-坷澡、*、/含蓉;星期频敛、月份這些

如果值太多的話(huà),效率比較低馅扣。

如果固定的幾個(gè)值的時(shí)候斟赚,建議使用switch語(yǔ)句。

原因:switch語(yǔ)句代碼塊是一次性加載到內(nèi)存中差油,而if判斷語(yǔ)句是多個(gè)代碼塊不是一次加載的拗军。效率相對(duì)要不switch低。

switch缺點(diǎn)

1:功能性較差

2:書(shū)寫(xiě)麻煩蓄喇,書(shū)寫(xiě)麻煩帶來(lái)的壞處就是容易出錯(cuò)发侵。

所以switch在正常開(kāi)發(fā)中使用的較少。

ps:歡迎關(guān)注凱哥微信公眾號(hào):凱哥Java

ps:

本系列教程專(zhuān)題 《從零學(xué)java筆錄》

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末妆偏,一起剝皮案震驚了整個(gè)濱河市刃鳄,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌钱骂,老刑警劉巖叔锐,帶你破解...
    沈念sama閱讀 216,591評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件挪鹏,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡愉烙,警方通過(guò)查閱死者的電腦和手機(jī)讨盒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)齿梁,“玉大人催植,你說(shuō)我怎么就攤上這事∩自瘢” “怎么了创南?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,823評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)省核。 經(jīng)常有香客問(wèn)我稿辙,道長(zhǎng),這世上最難降的妖魔是什么气忠? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,204評(píng)論 1 292
  • 正文 為了忘掉前任邻储,我火速辦了婚禮,結(jié)果婚禮上旧噪,老公的妹妹穿的比我還像新娘吨娜。我一直安慰自己,他們只是感情好淘钟,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,228評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布宦赠。 她就那樣靜靜地躺著,像睡著了一般米母。 火紅的嫁衣襯著肌膚如雪勾扭。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,190評(píng)論 1 299
  • 那天铁瞒,我揣著相機(jī)與錄音妙色,去河邊找鬼。 笑死慧耍,一個(gè)胖子當(dāng)著我的面吹牛身辨,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播蜂绎,決...
    沈念sama閱讀 40,078評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼栅表,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了师枣?” 一聲冷哼從身側(cè)響起怪瓶,我...
    開(kāi)封第一講書(shū)人閱讀 38,923評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后洗贰,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體找岖,經(jīng)...
    沈念sama閱讀 45,334評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,550評(píng)論 2 333
  • 正文 我和宋清朗相戀三年敛滋,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了许布。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,727評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡绎晃,死狀恐怖蜜唾,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情庶艾,我是刑警寧澤袁余,帶...
    沈念sama閱讀 35,428評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站咱揍,受9級(jí)特大地震影響颖榜,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜煤裙,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,022評(píng)論 3 326
  • 文/蒙蒙 一掩完、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧硼砰,春花似錦且蓬、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,672評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至遍愿,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間耘斩,已是汗流浹背沼填。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,826評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留括授,地道東北人坞笙。 一個(gè)月前我還...
    沈念sama閱讀 47,734評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像荚虚,于是被迫代替她去往敵國(guó)和親薛夜。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,619評(píng)論 2 354

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