您好,登錄后才能下訂單哦!
本篇內容主要講解“C語言循環與分支語句實例分析”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“C語言循環與分支語句實例分析”吧!
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 {}
理解完第一種方法后面這兩種方法也就不難理解了,在這個語句中少了if else語句,因此對比上一種方法這種語句在運行時跳過了else if的判斷與執行階段。
或者我們可以這樣理解:在這里其實else if也存在,比如以這種方式:else if(0) {expression;}
if() …{}
關于這個語句想必不用我多說了吧,相信聰明的小伙伴們自己便能明白了。
總結:
在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語句(不會也不要緊的,慢慢來,這里只是給大家加深點印象)
1.打印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( ; ; )這樣
省略expression1
省略這一步則會跳過for循環時給循環變量賦值的部分,如果省略需要再for循環之前設定好循環變量的初始值。
省略condition
condition為循環條件,當省略 它時系統會默認條件真值為1,即條件永遠為真,這樣程序會陷入死循環而崩潰,是不能省略的。
省略expression2
可省略,省略完后系統將跳過執行代碼塊后對循環變量的操作,因次就要把對循環變量的操作放到代碼塊中了。
程序運行時遇到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循環中對循環變量處理的一部分不會被跳過。
到此,相信大家對“C語言循環與分支語句實例分析”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。