欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語言超詳細講解循環(huán)與分支語句基礎

 更新時間:2022年04月12日 17:29:22   作者:YU-fect  
各位小伙伴們,今天給大家?guī)淼氖茄h(huán)與分支語句,本篇將會向大家介紹這些語句的格式和使用的基本方法,感興趣的朋友來看看吧

寫在開始

在內容開始之前給大家介紹一下在計算機中如何表示真假

0表示假,非0表示真。

1. 分支語句

分支語句也叫做條件選擇語句,主要分為if語句和switch語句。

1.1 if語句

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也為假,故會向下執(zhí)行else的語句"a比b和c都小",最終如上圖所示。

注:如果在第一個if里面條件成立了那之后的else if和else語句都將不會被運行。

  • if()…{}…else {}

理解完第一種方法后面這兩種方法也就不難理解了,在這個語句中少了if else語句,因此對比上一種方法這種語句在運行時跳過了else if的判斷與執(zhí)行階段。

或者我們可以這樣理解:在這里其實else if也存在,比如以這種方式:else if(0) {expression;}

  • if() …{}

關于這個語句想必不用我多說了吧,相信聰明的小伙伴們自己便能明白了。

總結:

在if()的括號內填入條件,如果條件成立時,將會執(zhí)行后面大括號(代碼塊)里的的表達式,而若條件不成立時,系統(tǒng)將會直接跳過表達式去執(zhí)行else if 的判斷,條件成立則運行else if 后面的代碼塊,反之則跳過,最后如果都不符合條件的話則會直接執(zhí)行else后的語句。

1.2 switch

switch語句一般是和循環(huán)語句一起搭配使用的,現在先了解一下switch語句是怎么使用的。

代碼格式:

switch(a)//a是一個整形變量
{
   case 1:expression1;//不一定要寫case 1,可以是任意a所能取值的數
   break;
   case 2:expression2;
   break;
   ....
   default:expression;
}

在switch()里放入一個整形變量a,程序會根據a的值跳轉到對應的case 語句并執(zhí)行,而執(zhí)行到break時程序便會跳出switch語句,如果沒有對應的case語句則會執(zhí)行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的效果吧:

在這里插入圖片描述

既然沒有跳出去那就繼續(xù)執(zhí)行下一個語句唄,沒有問題。break語句其實并不是每個case語句后面都要加上,有些時候只在必要的地方加上就可以達到我們想要的效果了.

2. 循環(huán)語句

循環(huán)語句主要分為三種:for語句,while語句和do while語句,這三種語句都是可以做到相互轉換的,一般來說for語句會方便點,不過最終用哪種還是看具體問題和個人的喜好吧。

2.1 while()語句

while(condition)
{
    expression;
}

解釋:

condition 為判斷條件。

expression 為條件為真時執(zhí)行的語句。

運行時:

while()語句首先是判斷括號里面表達式的真值,如果條件為真(非0),則會運行后面的代碼塊,運行完之后會再一次的進入條件判斷階段,如果條件還為真,則會繼續(xù)運行直至條件為假(0)時跳出循環(huán)。

這里給大家出個小題目吧,隨便復習下剛剛講的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;
}

該注意的點我已近在代碼里注釋了,如果還有不懂的可以在評論區(qū)提問,當然如果有問題也還請大佬們指出,YU同學先感謝大家了。

2.2 do while()語句

do while()語句與while語句區(qū)別不大,正如它的名字一樣,它在運行是會提前執(zhí)行一遍代碼塊里面的內容,然后再進行判斷while()里面的真值,后面的就與while()語句是一樣的,接下來給大家演示一下do while ()語句的格式:

    do {
        expression;
    }while (condition);

2.3 for 語句

代碼格式:

for(expression1;condition;espression2)
{
    expression;
}

解釋:

expression1 是給循環(huán)變量賦予初始值。(這時在開始循環(huán)的時候進行的,后面循環(huán)的時候不會再運行這個代碼)

condition 是每次循環(huán)時判斷的條件,若條件真值為真這繼續(xù)運行代碼塊里面的語句,為假則會跳出for循環(huán)。

expression2 一般是對賦值變量的操作,讓程序能達到自己想要的效果。

運行時:

程序會先進行對循環(huán)變量的賦值,而后進行條件判斷,為真則執(zhí)行后面的代碼塊,為假則退出循環(huán),再執(zhí)行完代碼塊后程序會通過condition2進行對循環(huán)變量的操作,然后進入下一次循環(huán)的判斷階段,以此類推。

for語句中表達式的省略

注:語句可以省,但分號不能省的,就算全省了也要寫成for( ; ; )這樣

  • 省略expression1

省略這一步則會跳過for循環(huán)時給循環(huán)變量賦值的部分,如果省略需要再for循環(huán)之前設定好循環(huán)變量的初始值。

  • 省略condition

condition為循環(huán)條件,當省略 它時系統(tǒng)會默認條件真值為1,即條件永遠為真,這樣程序會陷入死循環(huán)而崩潰,是不能省略的。

  • 省略expression2

可省略,省略完后系統(tǒng)將跳過執(zhí)行代碼塊后對循環(huán)變量的操作,因次就要把對循環(huán)變量的操作放到代碼塊中了。

break在循環(huán)語句中的作用

程序運行時遇到break語句時不論當前條件的真值是否為假都會會直接跳出循環(huán),下面給大家看個例子:

int main()
{
	int i = 1;
	for (i = 0; i<10; i++)
	{
		if (i == 6)
			break;
		printf("%d",i);
	}
	printf("\n%d", i);//前面打印一個空行
}

在這里插入圖片描述

程序的結果是

012345 6

過程解釋:在循環(huán)變量i=5時,if(i==6)條件不通過,并沒有運行break語句,然后繼續(xù)在屏幕打印5,之后通過i++使得i變成6,從而使得if(i==6)為真,程序運行時執(zhí)行了break后跳出了循環(huán),沒有打印6和進行之后的循環(huán),而后面的6時在循環(huán)外打印的,此時i=6,故打印出了一個六在下一行。

continue 在循環(huán)語句中的應用

continue 是使程序跳出本次循環(huán)去執(zhí)行下一次循環(huán)

注:是跳出本次循環(huán)的執(zhí)行代碼塊部分,前面講過for循環(huán)在執(zhí)行完代碼塊后還會有一步對循環(huán)變量的操作,這一部分是不會被跳過的。

下面看看效果:

對于while和do while

int main()
{
	int i = 0;
	while(i<10)
	{
		if (i == 6)
			comtinue;
		printf("%d",i);
		i++;
	}
	printf("\n%d", i);//前面打印一個空行
}

在這里插入圖片描述

程序出現了在一直閃光標,出現死循環(huán)。

分析:當i=6時運行了continue跳出了本次循環(huán)進入下一次循環(huán),可下一次循環(huán)還是有i=6(i++語句在continue之后,沒有沒運行),一直重復從而出現死循環(huán)。

對于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,但程序并沒有出現死循環(huán)正是上面說說的,for循環(huán)中對循環(huán)變量處理的一部分不會被跳過。

總結:

今天給大家簡單介紹了分支語句 if語句和switch語句,循環(huán)語句for語句,while語句,dowhile語句的使用方法和簡單的運行流程以及continue 和break 在循環(huán)語句中的應用和細小差別。

到此這篇關于C語言超詳細講解循環(huán)與分支語句基礎的文章就介紹到這了,更多相關C語言 循環(huán)與分支內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • C++實現圖像壓縮的示例代碼

    C++實現圖像壓縮的示例代碼

    這篇文章主要為大家詳細介紹了如何使用C++實現圖像壓縮的功能,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2023-12-12
  • C語言位運算符:與、或、異或、取反、左移與右移詳細介紹

    C語言位運算符:與、或、異或、取反、左移與右移詳細介紹

    以下是對C語言中的位運算符:與、或、異或、取反、左移與右移進行了詳細的分析介紹,需要的朋友可以過來參考下
    2013-08-08
  • C語言實例實現二叉搜索樹詳解

    C語言實例實現二叉搜索樹詳解

    二叉搜索樹是以一棵二叉樹來組織的。每個節(jié)點是一個對象,包含的屬性有l(wèi)eft,right,p和key,其中,left指向該節(jié)點的左孩子,right指向該節(jié)點的右孩子,p指向該節(jié)點的父節(jié)點,key是它的值
    2022-05-05
  • C++讀取NC數據的結果與真實數值不一致的解決方法

    C++讀取NC數據的結果與真實數值不一致的解決方法

    本文介紹基于C++ 語言的netCDF庫讀取.nc格式的柵格文件時,代碼讀取到的數據與柵格文件的實際數據不一致的解決方法,文中通過代碼示例和圖文講解的非常詳細,需要的朋友可以參考下
    2024-03-03
  • C++?棧和隊列的實現超詳細解析

    C++?棧和隊列的實現超詳細解析

    棧和隊列,嚴格意義上來說,也屬于線性表,因為它們也都用于存儲邏輯關系為?"一對一"?的數據,但由于它們比較特殊,因此將其單獨作為一章,做重點講解
    2022-03-03
  • C語言流程控制之switch語句詳解

    C語言流程控制之switch語句詳解

    這篇文章主要給大家介紹了關于C語言流程控制之switch語句的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01
  • c_str()的用法詳細解析

    c_str()的用法詳細解析

    c_str()就是把string類對象轉換成和c兼容的char *類型。這是為了與c語言兼容,在c語言中沒有string類型,故必須通過string類對象的成員函數c_str()把string 對象轉換成c中的字符串樣式
    2013-09-09
  • C++ LeetCode1796字符串中第二大數字

    C++ LeetCode1796字符串中第二大數字

    這篇文章主要為大家介紹了C++ LeetCode1796字符串中第二大數字示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-12-12
  • c++驗證哥德巴赫猜想

    c++驗證哥德巴赫猜想

    這篇文章主要介紹了c++驗證哥德巴赫猜想,哥德巴赫猜想就是任一大于2的偶數,都可表示成兩個素數之和,需要的朋友可以參考下
    2014-04-04
  • 基于C++編寫一個進度條的示例代碼

    基于C++編寫一個進度條的示例代碼

    這篇文章主要為大家詳細介紹了如何利用C++實現一個命令行進度條,文中的示例代碼講解詳細,具有一定的學習價值,感興趣的小伙伴可以了解一下
    2023-06-06

最新評論