<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
在內容開始之前給大家介紹一下在計算機中如何表示真假
0表示假,非0表示真。
分支語句也叫做條件選擇語句,主要分為if語句和switch語句。
if()…{} else if()…{} else {}
程式碼解釋:
#include<stdio.h> //這裡是引入「printf」函數所在的標頭檔案,大家在使用函數時要記得把函數的標頭檔案加上哦 int main() { int a = 1, b = 2, c = 3; if (a > c) printf("a比c大"); else if (a > b) printf("a比b大"); else (printf("a比b和c都小")); }
分析:
在if(a>c)中a>c為假,故會跳過printf(“a比c大”);,接下來會執行else if,而a>b也為假,故會向下執行else的語句"a比b和c都小",最終如上圖所示。
注:如果在第一個if裡面條件成立了那之後的else if和else語句都將不會被執行。
理解完第一種方法後面這兩種方法也就不難理解了,在這個語句中少了if else語句,因此對比上一種方法這種語句在執行時跳過了else if的判斷與執行階段。
或者我們可以這樣理解:在這裡其實else if也存在,比如以這種方式:else if(0) {expression;}
關於這個語句想必不用我多說了吧,相信聰明的小夥伴們自己便能明白了。
總結:
在if()的括號內填入條件,如果條件成立時,將會執行後面大括號(程式碼塊)裡的的表示式,而若條件不成立時,系統將會直接跳過表示式去執行else if 的判斷,條件成立則執行else if 後面的程式碼塊,反之則跳過,最後如果都不符合條件的話則會直接執行else後的語句。
switch語句一般是和迴圈語句一起搭配使用的,現在先了解一下switch語句是怎麼使用的。
程式碼格式:
switch(a)//a是一個整形變數 { case 1:expression1;//不一定要寫case 1,可以是任意a所能取值的數 break; case 2:expression2; break; .... default:expression; }
在switch()裡放入一個整形變數a,程式會根據a的值跳轉到對應的case 語句並執行,而執行到break時程式便會跳出switch語句,如果沒有對應的case語句則會執行default語句.下面請看範例來了解:
//將數位轉換成其在一週內的位置 int main() { int day = 0; scanf("%d",&day);//通過鍵盤向變數day輸入一個整數 switch (day){ case 1:printf("週一"); break; case 2:printf("週二"); break; case 3:printf("週三"); break; //中間的我省略了,這裡程式碼演示主要是為了讓大家瞭解功能,長篇大論也不太好 case 7:printf("週日"); break; default:printf("請輸入正確的數位"); } return 0; }
前面說了break的作用是跳出switch語句,現在給大家看看如果沒有break的效果吧:
既然沒有跳出去那就繼續執行下一個語句唄,沒有問題。break語句其實並不是每個case語句後面都要加上,有些時候只在必要的地方加上就可以達到我們想要的效果了.
迴圈語句主要分為三種:for語句,while語句和do while語句,這三種語句都是可以做到相互轉換的,一般來說for語句會方便點,不過最終用哪種還是看具體問題和個人的喜好吧。
while(condition)
{
expression;
}
解釋:
condition 為判斷條件。
expression 為條件為真時執行的語句。
執行時:
while()語句首先是判斷括號裡面表示式的真值,如果條件為真(非0),則會執行後面的程式碼塊,執行完之後會再一次的進入條件判斷階段,如果條件還為真,則會繼續執行直至條件為假(0)時跳出迴圈。
這裡給大家出個小題目吧,隨便複習下剛剛講的if語句(不會也不要緊的,慢慢來,這裡只是給大家加深點印象)
列印10以內的奇數。
有沒有小夥伴是這樣寫的呢:printf("%d%d%d%d%d", 1, 3, 5, 7, 9);
哈哈結果沒問題,不過咱們可是要當程式設計師的人吶
int main() { int i = 0;//在宣告一個變數時記得給它賦值,這一部叫做變數的初始化 while (i <= 10) { if (i % 2 == 1) //符號「==」是判斷是否相等,可以理解為數學中的等於號 //"%"為取模,比如10%3=1,是取餘數 printf("%d", i); i++; // i++的意思是先使用i自己的值,然後使自己的值加1,這裡可以看成是 i = i + 1; } return 0; }
該注意的點我已近在程式碼裡註釋了,如果還有不懂的可以在評論區提問,當然如果有問題也還請大佬們指出,YU同學先感謝大家了。
do while()語句與while語句區別不大,正如它的名字一樣,它在執行是會提前執行一遍程式碼塊裡面的內容,然後再進行判斷while()裡面的真值,後面的就與while()語句是一樣的,接下來給大家演示一下do while ()語句的格式:
do {
expression;
}while (condition);
程式碼格式:
for(expression1;condition;espression2)
{
expression;
}
解釋:
expression1 是給迴圈變數賦予初始值。(這時在開始迴圈的時候進行的,後面迴圈的時候不會再執行這個程式碼)
condition 是每次迴圈時判斷的條件,若條件真值為真這繼續執行程式碼塊裡面的語句,為假則會跳出for迴圈。
expression2 一般是對賦值變數的操作,讓程式能達到自己想要的效果。
執行時:
程式會先進行對迴圈變數的賦值,而後進行條件判斷,為真則執行後面的程式碼塊,為假則退出迴圈,再執行完程式碼塊後程式會通過condition2進行對迴圈變數的操作,然後進入下一次迴圈的判斷階段,以此類推。
注:語句可以省,但分號不能省的,就算全省了也要寫成for( ; ; )這樣
省略這一步則會跳過for迴圈時給迴圈變數賦值的部分,如果省略需要再for迴圈之前設定好迴圈變數的初始值。
condition為迴圈條件,當省略 它時系統會預設條件真值為1,即條件永遠為真,這樣程式會陷入死迴圈而崩潰,是不能省略的。
可省略,省略完後系統將跳過執行程式碼塊後對迴圈變數的操作,因次就要把對迴圈變數的操作放到程式碼塊中了。
程式執行時遇到break語句時不論當前條件的真值是否為假都會會直接跳出迴圈,下面給大家看個例子:
int main() { int i = 1; for (i = 0; i<10; i++) { if (i == 6) break; printf("%d",i); } printf("n%d", i);//前面列印一個空行 }
程式的結果是
012345 6
過程解釋:在迴圈變數i=5時,if(i==6)條件不通過,並沒有執行break語句,然後繼續在螢幕列印5,之後通過i++使得i變成6,從而使得if(i==6)為真,程式執行時執行了break後跳出了迴圈,沒有列印6和進行之後的迴圈,而後面的6時在迴圈外列印的,此時i=6,故列印出了一個六在下一行。
continue 是使程式跳出本次迴圈去執行下一次迴圈
注:是跳出本次迴圈的執行程式碼塊部分,前面講過for迴圈在執行完程式碼塊後還會有一步對迴圈變數的操作,這一部分是不會被跳過的。
下面看看效果:
對於while和do while
int main() { int i = 0; while(i<10) { if (i == 6) comtinue; printf("%d",i); i++; } printf("n%d", i);//前面列印一個空行 }
程式出現了在一直閃遊標,出現死迴圈。
分析:當i=6時執行了continue跳出了本次迴圈進入下一次迴圈,可下一次迴圈還是有i=6(i++語句在continue之後,沒有沒執行),一直重複從而出現死迴圈。
對於for
int main() { int i = 0; for (i = 0; i<10; i++) { if (i == 6) continue; printf("%d",i); } printf("n%d", i); }
這次列印少為12345789 10,少了一個6,但程式並沒有出現死迴圈正是上面說說的,for迴圈中對迴圈變數處理的一部分不會被跳過。
今天給大家簡單介紹了分支語句 if語句和switch語句,迴圈語句for語句,while語句,dowhile語句的使用方法和簡單的執行流程以及continue 和break 在迴圈語句中的應用和細小差別。
到此這篇關於C語言超詳細講解迴圈與分支語句基礎的文章就介紹到這了,更多相關C語言 迴圈與分支內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45