快速認(rèn)識(shí)——程序的流程結(jié)構(gòu)(第二版)

我們知道,“程序”兩字拆開(kāi)來(lái)看其實(shí)就是“流程”與“順序”,就是按一定順序執(zhí)行的流程[1]。
那么在程序中代碼執(zhí)行的也是有自己的流程與順序的。

回想我們?cè)谏钪薪鉀Q問(wèn)題的時(shí)候是需要一定的流程與步驟的,為了能讓程序解決問(wèn)題,在程序中也需要能夠進(jìn)行一定流程與步驟的處理。

接下來(lái),讓我們一起看看程序是如何進(jìn)行流程控制的。

對(duì)于現(xiàn)實(shí)中遇到的問(wèn)題,如果不是特別復(fù)雜的話,我們一般按部就班的處理就可以了。
在程序中也是一樣的,如果遇到的問(wèn)題并不復(fù)雜,我們的代碼也僅需按部就班的按代碼的書(shū)寫(xiě)順序執(zhí)行即可,不需要經(jīng)歷特殊的流程。
就好比“如何將一支雪糕放進(jìn)冰箱里”這個(gè)問(wèn)題并不復(fù)雜,我們只需三步:第一步打開(kāi)冰箱門(mén),第二步放入雪糕,第三步關(guān)上冰箱門(mén)。即可解決這個(gè)問(wèn)題。

  // 現(xiàn)在有100元
  int money = 100;
  // 要花掉50元
  int cost = 50;
  // 余額為100 - 50 = 50 元 
  int balance = money - cost;

這種按順序解決問(wèn)題的方法在程序中叫做順序結(jié)構(gòu)[2]。

在現(xiàn)實(shí)中我們常常會(huì)遇到不同的問(wèn)題與不同的情況,并沒(méi)有一個(gè)萬(wàn)能的方法能夠解決所有的問(wèn)題,所以我們常說(shuō):具體問(wèn)題具體分析。

在程序中也是如此,程序要處理的問(wèn)題很多時(shí)候也并不是一塵不變的,很多時(shí)候也會(huì)遇到很多不同的情況。在遇到不同情況的時(shí)候,程序也需要“具體問(wèn)題,具體分析”,針對(duì)不同的情況做不同的處理。
想象這樣一個(gè)場(chǎng)景:你現(xiàn)在想去買(mǎi)根雪糕吃,有一種情況是口袋里只有10元,所以你在這個(gè)情況下只能買(mǎi)5元的雪糕。而另一種情況是口袋里有50元,那么這個(gè)時(shí)候就可以去買(mǎi)20元的雪糕了。

  // 兩款雪糕,一款5元,一款20元
  int icecream1 = 5;
  int icecream2 = 20;

  // 如果口袋里只有10元,那么只能買(mǎi)第一款雪糕,余額為10 - 5 = 5元
  if (money == 10) {
    balance = money - icecream1;
  // 如果口袋里有50元,那么可以買(mǎi)第二款雪糕,余額為50 - 20 = 30元
  } else if (money == 50) {
    balance = money - icecream2;
  }

這種具體問(wèn)題具體分析,根據(jù)是否滿足不同條件來(lái)選擇解決方案的代碼結(jié)構(gòu)叫做條件結(jié)構(gòu)。

在生活中有很多事情是需要不斷重復(fù)一些固定的步驟才能解決的,比如最簡(jiǎn)單的擰螺絲,我們需要不斷重復(fù)將螺絲擰過(guò)一圈的這個(gè)步驟很多次,直到螺絲擰緊為止。
程序也是如此,為了能夠解決問(wèn)題,有時(shí)候會(huì)將一些操作不斷的循環(huán)重復(fù)操作,直到滿足條件為止。

  // 假設(shè)擰一顆螺絲需要擰10圈,當(dāng)前擰了0圈
  int number = 10;
  int current = 0;
  // 當(dāng)已經(jīng)擰過(guò)的圈數(shù)小于所需要的圈數(shù)時(shí),就不斷的擰
  while (current < number) {
    // 每擰過(guò)一圈則當(dāng)前圈數(shù)加1
    current = current + 1;  
  }

這種循環(huán)執(zhí)行操作的代碼結(jié)構(gòu)叫循環(huán)結(jié)構(gòu)

以上就是程序的流程結(jié)構(gòu)[3]了,也是程序解決問(wèn)題的執(zhí)行方式:順序結(jié)構(gòu),條件結(jié)構(gòu),循環(huán)結(jié)構(gòu)。


  1. 關(guān)于程序的概念,可以看看我之前的文章《快速認(rèn)識(shí)——程序,編程和編程語(yǔ)言》(http://www.itdecent.cn/p/0d3676f8bb64) ?

  2. 如果對(duì)代碼部分不太理解可以看看我之前的文章《快速認(rèn)識(shí)——變量的聲明與賦值》(http://www.itdecent.cn/p/8581e8bc3ce9) ?

  3. 一個(gè)程序不一定都使用了這三種結(jié)構(gòu),但一定使用了其中一種以上。 ?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容