Java學習筆記(1)第八節(jié)--流程與結構

1.概述:程序執(zhí)行過程中捂贿,各條語句的執(zhí)行順序對程序的結果是有影響的。所以我們需要清楚每條語句的執(zhí)行流程胳嘲。

2.三種結構:
? ? ? ? 2.1:順序結構? ? 根據(jù)編寫的順序厂僧,從上到下運行

? ? ? ? 2.2:判斷結構

? ? ? ? 2.3:循環(huán)結構


2.1? ? 順序結構

public class DemoSequence {

public static void main(String[] args) {

System.out.println("我走第一步后執(zhí)行第二步");

? ? ? ? System.out.println("我走第二步后執(zhí)行第三步");

? ? ? ? System.out.println("我走第三步后結束");

? ? }

}

順序結構運行結構



2.2? ? 判斷語句

? ? ? ? 2.2.1? ? 選擇結構--if

? ? ? ? ? ? ? ? ? ? 1. 單if語句

????????????????if(關系表達式){

? ? ? ? ????????????????????? ?語句體;

? ? ? ? ? ? ? ? ? ?}

????????????????????????????流程圖:

單if

代碼示例:

public class DemoIf {

public static void main(String[] args) {

int price =18;

? ? ? ? System.out.println("今天去市場買菜了牛,正在跟老板討價");

? ? ? ? System.out.println("你:老板颜屠,這條魚20塊賣不賣");

? ? ? ? if(price <=20){

System.out.println("老板:行嘞,那就20賣給您");

? ? ? ? }

System.out.println("你:拿魚回家做飯");

? ? }

}

單if運行結果

2. if...else語句

????????????????if(關系表達式){

????????????????????????????語句體1鹰祸;

? ? ? ? ? ? ? ? ? }else? ? {

? ? ? ? ? ? ? ? ? ? ? ? ? ? 語句體2甫窟;

? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ????? 流程圖:

if...else

代碼示例:

public class DemoIf {

public static void main(String[] args) {

int price =25;

? ? ? ? System.out.println("今天去市場買菜,正在跟老板討價");

? ? ? ? System.out.println("你:老板蛙婴,這條魚20塊賣不賣");

? ? ? ? if (price <=20) {

????????????System.out.println("老板:行嘞粗井,那就20賣給您");

? ? ? ? ? ? System.out.println("你:拿魚回家做飯");

? ? ? ? }else {

????????????System.out.println("老板:這魚價格要"+price+"呢!");

? ? ? ? ? ? System.out.println("你:算了算了,這價格太貴不要了");

? ? ? ? ? ? System.out.println("你:買別的回家做飯");

? ? ? ? }

}

}

if...else運行結果

3.多if...else語句

? ? ? ? ? ? ? ??????????if(判斷條件1){

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 執(zhí)行語句1;

? ? ? ? ? ? ? ? ? ? ? ? ? }else? if(判斷條件2) {

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 執(zhí)行語句2浇衬;

? ? ? ? ? ? ? ? ? ? ? ? ? ?}

? ? ? ? ? ? ? ? ? ? ? ? ? ?......

? ? ? ? ? ? ? ? ? ? ? ? ? ? else? if(判斷條件n){

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 執(zhí)行語句n懒构;

????????????????????????????}

? ? ? ? ? ? ? ? ? ? ? ? ? ? else? {

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 執(zhí)行語句n+1;

????????????????????????????}

? ? ? ? ? ? ? ? ? ? ? ? ? ? 流程圖:

多if...else

代碼示例:

public class DemoIfExt {

public static void main(String[] args) {

/*

通過多if...else判斷考試成績等級

【90--100】:? 優(yōu)秀

【80--89】:? 良好

【70--79】:? 中等

【60--69】:? 及格

【0--59】:? ? 不及格

*/

? ? ? ? int score =85;

? ? ? ? if (score >=90 && score <=100) {

????????????????????System.out.println("你的成績等級:優(yōu)秀");

? ? ? ? }else if (score >=80 && score <90) {

????????????????????System.out.println("你的成績等級:良好");

? ? ? ? }else if (score >=70 && score <80) {

????????????????????System.out.println("你的成績等級:中等");

? ? ? ? }else if (score >=60 && score <70) {

????????????????????System.out.println("你的成績等級:及格");

? ? ? ? }else if (score >=0 && score <60) {

????????????????????System.out.println("你的成績等級:不及格");

? ? ? ? }else {//單獨處理不合理情況

? ? ? ? ? ? ????????System.out.println("你輸入的數(shù)據(jù)不合理");

? ? ? ? }

????}

}

多if...else運行結果

TIP:

????????????1.自己嘗試用if語句代替三元運算符


?2.2.2switch語句

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? switch(表達式) {

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? case? ? 常量值1:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 語句體1;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? break;

????????????????????????????????????case? ? 常量值2:

????????????????????????????????????????????語句體2耘擂;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? break;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? case? ? 常量值3:

????????????????????????????????????????????語句體3胆剧;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? break;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? default:

????????????????????????????????????????????語句體n+1;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? break;

????????????????????????????????}

?流程圖:

switch流程圖

public class DemoSwitch {

public static void main(String[] args) {

int day =3;

? ? ? ? switch (day){

????????????case 1:

????????????????????????System.out.println("今天是星期一");

????????????????????????break;

? ? ? ? ? ? case 2 :

????????????????????????System.out.println("今天是星期二");

????????????????????????break;

? ? ? ? ? ? case 3:

????????????????????????System.out.println("今天是星期三");

????????????????????????break;

? ? ? ? ? ? case 4 :

? ? ? ? ? ? ? ? ? ? ? ? System.out.println("今天是星期四");

????????????????????????break;

? ? ? ? ? ? case 5 :

????????????????????????System.out.println("今天是星期五");

????????????????????????break;

? ? ? ? ? ? case 6 :

????????????????????????System.out.println("今天是星期六");

????????????????????????break;

? ? ? ? ? ? case 7 :

????????????????????????System.out.println("今天是星期日");

????????????????????????break;

? ? ? ? ? ? default:

????????????????????????System.out.println("數(shù)據(jù)不合理");

? ? ? ? ? ? ? ????????? break;? //可省略醉冤,但是不建議

? ? ? ? }

????}

}

switch運行結果

TIP:

1.case里面的數(shù)值不能重復

2.switch后面的小括號中只能是下列數(shù)據(jù)類型? ??

????????????????????????????基本數(shù)據(jù)類型:byte/short/char/int

? ? ? ? ? ? ? ? ? ? ? ? ? ? 引用數(shù)據(jù)類型:String字符串赞赖,enum枚舉

3.case語句可以隨意,break語句也可以省略冤灾,直到遇到了break或者整個部分結束前域。


2.3循環(huán)結構

2.3.1 含義:在滿足循環(huán)條件的情況下,反復執(zhí)行某段代碼韵吨。

? ? ? ? ? ? 需要在合適的時候將循環(huán)條件設置為false,否則就是死循環(huán)了匿垄。

2.3.2? 結構:

1.for循環(huán)格式

? ? ? ? ? ? for(初始化表達式;布爾表達式归粉;步進表達式){

? ? ? ? ? ? ? ? ? ? ? ? 循環(huán)體

? ? ? ? ? ? }

流程圖:

for流程圖

代碼示例:

public class DemoFor {

//打印數(shù)字0到9

? ? public static void main(String[] args) {

????????int i =0;

? ? ? ? for(????;????i<10;????i++){????????????????//如果定義了i,則初始化表達式可以省略

? ? ? ? ? ? System.out.println(i);

? ? ? ? }

????}

}

運行結果

2.while循環(huán)結構

格式:

標準格式:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?拓展格式:

while(條件判斷){? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 初始化語句椿疗;

? ??????循環(huán)體? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? while(條件判斷){

}? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?循環(huán)體;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 步進語句糠悼;? ? ? ? //主要和條件判斷一起搭配使用

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?}

while流程圖

代碼示例:

public class DemoFor {

//打印數(shù)字0到9

? ? public static void main(String[] args) {

int i =0;? ? ? ? ? //初始化

? ? ? ? while(i<10){//與步進語句配合使用

? ? ? ? ? ? System.out.println(i);

? ? ? ? ? ? i++;? ? ? ? ? ? //步進語句

? ? ? ? }

? ? }

}

運行結果

3.do...while循環(huán)結構

TIP:?基于while循環(huán)結構届榄,但是不同點在于先無條件執(zhí)行一次循環(huán)體。

? ? ? ? 記得while(條件判斷)后需要加一個分號倔喂。

格式:

標準格式:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?拓展格式:

do{? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ????????????????????????????初始化語句铝条;

? ??????循環(huán)體? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?do(條件判斷){

}while(條件判斷) ;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 循環(huán)體;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 步進語句席噩;? ? ? ? //主要和條件判斷一起搭配使用

????????????????????????????????????????????????????????????????????????????????????}while(條件判斷);

do...while流程圖


代碼示例:

public class DemoFor {

//打印數(shù)字0到9

? ? public static void main(String[] args) {

????????int i =0;? ? ? ? ? //初始化

? ? ? ? do{

????????????System.out.println(i);

? ? ? ? ? ? i++;

? ? ? ? }while (i<10);

? ? }

}

do...while運行結果

區(qū)別分析:

1.如果while條件判斷從來沒有滿足過班缰,那么for循環(huán)和while循環(huán)會執(zhí)行0次,do...while循環(huán)會執(zhí)行1次悼枢。

2.for循環(huán)的變量只有在循環(huán)內部才可以使用埠忘。while和do...while循環(huán)在循環(huán)后還可以繼續(xù)使用。


小建議:

1.凡是循環(huán)次數(shù)確定的,多用for循環(huán)馒索。不確定的莹妒,用while循環(huán)。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末绰上,一起剝皮案震驚了整個濱河市旨怠,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌渔期,老刑警劉巖运吓,帶你破解...
    沈念sama閱讀 211,042評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異疯趟,居然都是意外死亡拘哨,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評論 2 384
  • 文/潘曉璐 我一進店門信峻,熙熙樓的掌柜王于貴愁眉苦臉地迎上來倦青,“玉大人,你說我怎么就攤上這事盹舞〔洌” “怎么了?”我有些...
    開封第一講書人閱讀 156,674評論 0 345
  • 文/不壞的土叔 我叫張陵踢步,是天一觀的道長癣亚。 經(jīng)常有香客問我,道長获印,這世上最難降的妖魔是什么述雾? 我笑而不...
    開封第一講書人閱讀 56,340評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮兼丰,結果婚禮上玻孟,老公的妹妹穿的比我還像新娘。我一直安慰自己鳍征,他們只是感情好黍翎,可當我...
    茶點故事閱讀 65,404評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著艳丛,像睡著了一般匣掸。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上氮双,一...
    開封第一講書人閱讀 49,749評論 1 289
  • 那天旺聚,我揣著相機與錄音,去河邊找鬼眶蕉。 笑死砰粹,一個胖子當著我的面吹牛,可吹牛的內容都是我干的造挽。 我是一名探鬼主播碱璃,決...
    沈念sama閱讀 38,902評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼饭入!你這毒婦竟也來了嵌器?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,662評論 0 266
  • 序言:老撾萬榮一對情侶失蹤谐丢,失蹤者是張志新(化名)和其女友劉穎爽航,沒想到半個月后蚓让,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,110評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡讥珍,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年历极,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片衷佃。...
    茶點故事閱讀 38,577評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡趟卸,死狀恐怖,靈堂內的尸體忽然破棺而出氏义,到底是詐尸還是另有隱情锄列,我是刑警寧澤,帶...
    沈念sama閱讀 34,258評論 4 328
  • 正文 年R本政府宣布惯悠,位于F島的核電站邻邮,受9級特大地震影響,放射性物質發(fā)生泄漏克婶。R本人自食惡果不足惜饶囚,卻給世界環(huán)境...
    茶點故事閱讀 39,848評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望鸠补。 院中可真熱鬧萝风,春花似錦、人聲如沸紫岩。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽泉蝌。三九已至歇万,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間勋陪,已是汗流浹背贪磺。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留诅愚,地道東北人寒锚。 一個月前我還...
    沈念sama閱讀 46,271評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像违孝,于是被迫代替她去往敵國和親刹前。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,452評論 2 348

推薦閱讀更多精彩內容

  • 【程序1】 題目:古典問題:有一對兔子雌桑,從出生后第3個月起每個月都生一對兔子喇喉,小兔子長到第三個月后每個月又生一對兔...
    開心的鑼鼓閱讀 3,310評論 0 9
  • 1 順序語句 語句:使用分號分隔的代碼稱作為一個語句。 注意:沒有寫任何代碼只是一個分號的時候校坑,也是一條語句拣技,...
    哈哈哎呦喂閱讀 376評論 0 0
  • Java經(jīng)典問題算法大全 /*【程序1】 題目:古典問題:有一對兔子千诬,從出生后第3個月起每個月都生一對兔子,小兔子...
    趙宇_阿特奇閱讀 1,850評論 0 2
  • 人間仙境膏斤,月下瓊樓徐绑。世人總是把自己美好的希冀寄托在天外,通過現(xiàn)世的光景描繪出來掸绞。自古以來,天上人間一直是古...
    沐春之秋閱讀 731評論 1 5
  • 我不知道我在懷念些什么,也不知道自己在想念些什么樣的人俺抽,只是每晚的夢敞映,都會出現(xiàn)同樣的情景,讓我醒來后再無法安然入睡...
    立夏9315閱讀 225評論 0 0