国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

c語言修煉第二章--分支與循環(huán)

這篇具有很好參考價值的文章主要介紹了c語言修煉第二章--分支與循環(huán)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

前言

2.1分支語句

2.1.1什么是語句

2.2分支語句

2.2.1if語句的語法形式

2.2.2懸空else問題

2.2.3if書寫形式的對比

2.3switch語句

2.3.1switch的語法形式

2.3.2 switch與break的關(guān)系

2.3.3 switch與default的關(guān)系


前言

小伙伴們端午安康吖!今天我們要開始新的一章的學(xué)習(xí)!直接開始學(xué)習(xí)叭!

2.1分支語句

2.1.1什么是語句

在了解語句之前,我們先來了解以下的知識!c語言是結(jié)構(gòu)化的程序設(shè)計語言!那么什么是結(jié)構(gòu)化呢又或者結(jié)構(gòu)化都有哪些呢?結(jié)構(gòu)化主要包括:順序結(jié)構(gòu),循環(huán)結(jié)構(gòu),選擇結(jié)構(gòu)!

c語言修煉第二章--分支與循環(huán)

?選擇結(jié)構(gòu)對應(yīng)的是分支語句(if switch語句),循環(huán)結(jié)構(gòu)對應(yīng)的是循環(huán)語句(while,for,do while)。言歸正傳,什么是語句呢?用分號隔開的就是語句。c語言的語句分類有以下五種

  • 表達(dá)式語句
  • 函數(shù)調(diào)用語句
  • 控制語句
  • 復(fù)合語句
  • 空語句

上代碼來具體看看叭!

#include<stdio.h>
int main()
{
	3 + 5;//表達(dá)式語句
	printf("haha\n");//函數(shù)調(diào)用語句
	;//空語句
	return 0;
}

今天我們要講的就是控制語句!控制語句用于控制程序的執(zhí)行流程以實現(xiàn)程序的各種結(jié)構(gòu)方式(c語言支持三種結(jié)構(gòu):順序結(jié)構(gòu),選擇結(jié)構(gòu),循環(huán)結(jié)構(gòu))它們有特定的語意符組成,c語言由九種控制語句可以分成以下三類:

  • 條件判斷語句也稱為分支語句:if語句,switch語句
  • 循環(huán)執(zhí)行語句:while語句, for語句,do while語句
  • 轉(zhuǎn)向語句:break語句 goto語句,return 語句,continue語句

2.2分支語句

2.2.1if語句的語法形式
//if的單分支語法結(jié)構(gòu)
if (表達(dá)式)
   語句式;

//If的雙分支的語法結(jié)構(gòu)
if (表達(dá)式)
  語句式;
else
   語句式;

//if的多分支語法結(jié)構(gòu)
if (表達(dá)式)
語句式;
else if (表達(dá)式)
語句式;
else if (表達(dá)式)
語句式;
else;

以年齡為例,我們具體來看看if的具體使用方式叭!當(dāng)年齡小于18時我們要進(jìn)行打印未成年,先用if單分支情況來試試叭

c語言修煉第二章--分支與循環(huán)

?哦豁,當(dāng)輸入13的時候真的打印了未成年欸,那要是當(dāng)我們輸入大于18時打印出成年人,可以談戀愛該怎么辦呢?再上代碼叭

#include<stdio.h>
int main()
{
	int age = 0;
	scanf("%d", &age);
	if (age > 18)
		printf("成年人\n");
	    printf("可以談戀愛\n");
	return 0;
}

運行一下看看能不能達(dá)到我們的預(yù)期叭

c語言修煉第二章--分支與循環(huán)

?這里來看貌似是按照我們的預(yù)期來的!我們再輸入一個值看看叭,當(dāng)我們輸入13時又會出現(xiàn)什么結(jié)果呢?

c語言修煉第二章--分支與循環(huán)

?這時竟然也打印了可以談戀愛!可是13不是成年人吶!這時我們會發(fā)現(xiàn)代碼出現(xiàn)了錯誤但是程序在編譯時并沒有出錯!那么我們該怎么改呢?這里會報錯是因為If后面默認(rèn)控制一條語句,當(dāng)出現(xiàn)了多條語句時要使用大括號!

#include<stdio.h>
int main()
{
	int age = 0;
	scanf("%d", &age);
	if (age > 18)
	{
		printf("成年人\n");
		printf("可以談戀愛\n");
	}
	return 0;
}

此時我們再輸入13就沒有問題啦(同時上面的也是復(fù)合語句的寫法)

c語言修煉第二章--分支與循環(huán)

?總結(jié)一下:If語句默認(rèn)控制一條語句,當(dāng)出現(xiàn)多條語句時要使用大括號!

在用代碼來看看If的雙分支情況叭

#include<stdio.h>
int main()
{
	int age = 0;
	scanf("%d", &age);
	if (age < 18)
	{
		printf("未成年\n");
	}
	else
	{
		printf("成年人\n");
	}
	return 0;
}

這個語句也很簡單,但是有一個需要注意的點:else后面不可以直接跟語句!

#include<stdio.h>
int main()
{
	int age = 0;
	scanf("%d", &age);
	if (age < 18)
	{
		printf("未成年\n");
	}
	else(age >= 20)//代碼在編譯期間會報錯
	{
		printf("青年人\n");
	}
	return 0;
}

else后面想要跟語句的話得再加一個if,此時就要用到多分支啦,上代碼

#include<stdio.h>
int main()
{
	int age = 0;
	scanf("%d", &age);
	if (age < 18)
		printf("未成年人\n");
	else if (age >= 18 && age < 30)
	{
		printf("青年\n");
	}
	else if (age >= 30 && age < 50)
	{
		printf("壯年\n");
	}
	else if (age >= 50 && age < 100)
	{
		printf("老年人\n");
	}
	else
	{
		printf("老年人\n");
	}
	return 0;
}

以上的代碼有兩個需要注意的地方:

  1. else后面不可以直接跟語句,而else if可以直接跟語句(再次強(qiáng)調(diào))!!
  2. ?不可以采用數(shù)學(xué)的寫法:50<=age<=100這種寫法是錯誤的·,這種寫法才是正確的age>=50&&age<=100
2.2.2懸空else問題

直接上代碼!

#include<stdio.h>
int main()
{
	int a = 5;
	int b = 3;
	if (a == 1)
		if (b == 3)
			printf("haha\n");
	else
	 printf("hehe\n");
	return 0;
}

是會打印hehe還是會打印haha1還是二者都打印亦或是二者都不打印呢?我們一起ctrl+f5來看看結(jié)果吧!

c語言修煉第二章--分支與循環(huán)

?這時我們會發(fā)現(xiàn)什么也沒有進(jìn)行打印,這是為什么呢!這是因為else只與離得最近的if進(jìn)行匹配而不是離得最近的!所以我們的代碼應(yīng)該是這個樣子的

#include<stdio.h>
int main()
{
	int a = 5;
	int b = 3;
	if (a == 1)
		if (b == 3)
			printf("haha\n");
	    else
	        printf("hehe\n");
	return 0;
}

為了更好的理解,也可以在if后面使用{ }

#include<stdio.h>
int main()
{
	int a = 5;
	int b = 3;
	if (a == 1)
	{
	  if (b == 3)
		printf("haha\n");
	  else
		printf("hehe\n");
	}
	return 0;
}

從這個代碼中我們得出兩點:

  1. ·else與離得最近的if進(jìn)行匹配
  2. 在進(jìn)行書寫代碼時要注意代碼風(fēng)格的問題。

關(guān)于代碼風(fēng)格的問題推薦醬醬們?nèi)タ?span style="background-color:#ffd900;">林銳博士寫的《高質(zhì)量c/c++編程》,里面有很好的講述噢!

2.2.3if書寫形式的對比
//第一種                              
if (condition) {
	return x;
}
return y;
//第二種
if (condition)
{
	return x;
}
else
{
	return y;
}

這倆種進(jìn)行對比,醬醬們覺得哪種讀起來簡單明了呢?沒錯就是第二種!再次強(qiáng)調(diào)一遍一定要去看林銳博士寫的《高質(zhì)量c/c++編程》!

2.3switch語句

2.3.1switch的語法形式
sitch(整型表達(dá)式)
{
    語句項;
}

其中語句項由case語句組成!那么case語句的結(jié)構(gòu)是什么樣的,上代碼!

case 整型常量表達(dá)式:
   語句;

其中值得注意的是:switch里的整型表達(dá)式?jīng)Q定了case的入口!

2.3.2 switch與break的關(guān)系

題目·:輸入1到7可以得出相應(yīng)的星期,以題目為例來熟悉switch的語法吧

#include<stdio.h>
int main()
{
	int day = 0;
	scanf("%d", &day);
	switch (day)
	{
	case 1:
		printf("星期1\n");
	case 2:
		printf("星期2\n");
	case 3:
		printf("星期3\n");
	case 4:
		printf("星期4\n");
	case 5:
		printf("星期5\n");
	case 6:
		printf("星期6\n");
	case 7:
		printf("星期天\n");
	}
	return 0;
}

寫的很棒,再來運行一下看看結(jié)果叭

c語言修煉第二章--分支與循環(huán)

?我們輸入2確實出現(xiàn)了我們想要的星期2,但是為什么還出現(xiàn)星期3到星期天呢?這就不得不要介紹switch與break的關(guān)系啦。在switch中,case決定入口,break決定出口。倘如語句中沒有break,則會一直執(zhí)行下去。

#include<stdio.h>
int main()
{
	int day = 0;
	scanf("%d", &day);
	switch (day)
	{
	case 1:
		printf("星期1\n");
        break;
	case 2:
		printf("星期2\n");
        break;
	case 3:
		printf("星期3\n");
        break;
	case 4:
		printf("星期4\n");
        break;
	case 5:
		printf("星期5\n");
        break;
	case 6:
		printf("星期6\n");
        break;
	case 7:
		printf("星期天\n");
        break;
	}
	return 0;
}

c語言修煉第二章--分支與循環(huán)

?此時就可以得到我們想要的結(jié)果啦!那要是我們想要把1到星期五都輸出weekday,星期六和星期天都輸出weekend!還是像之前一樣寫嗎?不不不,我們該做一些變動

#include<stdio.h>
int main()
{
	int day = 0;
	scanf("%d", &day);
	switch (day)
	{
	case 1:
	case 2:
	case 3:
	case 4:
	case 5:
		printf("weekday\n");
		break;
	case 6:
	case 7:
		printf("weekend\n");
	}
	return 0;
}

這樣是不是簡單多啦!再次進(jìn)行總結(jié):

  • 在switch中搭配break,可以實現(xiàn)真正的分支
  • break語句的實際效果是把語句列表劃分為不同的分支部分

最后再來一個注意事項:在最后一個case語句的后面加上一條break語句,這是為了避免之前一個case語句忘了添加break語句。

2.3.3 switch與default的關(guān)系

當(dāng)輸入的值與所有項都不匹配,代碼運行時也不進(jìn)行報錯,但是我們又并不想要時此時可以用上default語句。default語句的位置可以寫在case語句的任意位置。default語句也要跟上一個break噢,利用代碼來看看具體的實現(xiàn)形式叭

#include<stdio.h>
int main()
{
	int day = 0;
	scanf("%d", &day);
	switch (day)
	{
	case 1:
	case 2:
	case 3:
	case 4:
	case 5:
		printf("weekday\n");
		break;
	case 6:
	case 7:
		printf("weekend\n");
	default:
		printf("輸入錯誤\n");
		break;
	}
	return 0;
}

c語言修煉第二章--分支與循環(huán)

?淺淺的總結(jié)一下叭

  • 當(dāng)switch表達(dá)式的值與所有的case標(biāo)簽的值都不匹配時,default子句后的語句就會執(zhí)行
  • case與整型常量表達(dá)式之間有一個空格

以上就是今天的內(nèi)容啦,端午安康醬醬們?。?span toymoban-style="hidden">文章來源地址http://www.zghlxwxcb.cn/news/detail-505938.html

到了這里,關(guān)于c語言修煉第二章--分支與循環(huán)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • GO語言圣經(jīng) 第二章習(xí)題

    向tempconv包添加類型、常量和函數(shù)用來處理Kelvin絕對溫度的轉(zhuǎn)換,Kelvin 絕對零度是?273.15°C,Kelvin絕對溫度1K和攝氏度1°C的單位間隔是一樣的。 conv.go tempconv.go 寫一個通用的單位轉(zhuǎn)換程序,用類似cf程序的方式從命令行讀取參數(shù),如果缺省的話則是從標(biāo)準(zhǔn)輸入讀取參數(shù),然后

    2024年02月11日
    瀏覽(29)
  • 《python語言程序設(shè)計基礎(chǔ)》(第二版)第二章課后習(xí)題參考答案

    第二章 Python程序?qū)嵗馕?2.1 溫度轉(zhuǎn)換 2.2 匯率兌換 優(yōu)化: 優(yōu)化的主要改動: 將貨幣符號和金額分離出來,使代碼更加清晰易讀。 將條件判斷改為根據(jù)貨幣符號進(jìn)行判斷,避免重復(fù)判斷。 2.3 繪制彩色蟒蛇 2.4 等邊三角形的繪制 代碼一: 代碼二: 2.5 疊加等邊三角形的繪制

    2024年03月19日
    瀏覽(36)
  • 第二章:指令:計算機(jī)的語言(防遺忘)

    第二章:指令:計算機(jī)的語言(防遺忘)

    指令 :計算機(jī)硬件所能理解并服從的命令。 存儲程序概念 :多種類型的指令和數(shù)據(jù)均以數(shù)字形式存儲于存儲器中的概念。 字 :計算機(jī)中的基本訪問單位,通常是32位為一組,在MIPS體系結(jié)構(gòu)中與寄存器大小相同。 數(shù)據(jù)傳送指令 :在存儲器和寄存器之間移動數(shù)據(jù)的命令 地址

    2024年02月05日
    瀏覽(30)
  • ChatGPT技術(shù)原理 第二章:自然語言處理基礎(chǔ)

    目錄 2.1 語言模型 2.3 詞嵌入 2.4 注意力機(jī)制 2.5 生成式模型

    2024年02月02日
    瀏覽(23)
  • 譚浩強(qiáng)【C語言程序設(shè)計】第二章習(xí)題詳解

    譚浩強(qiáng)【C語言程序設(shè)計】第二章習(xí)題詳解

    ? 目錄 ?編輯 1,什么是算法?試從日常生活中找3個例子,描述它們的算法。 2,什么叫結(jié)構(gòu)化的算法?為什么要提倡結(jié)構(gòu)化的算法? 3,試述3種基本結(jié)構(gòu)的特點,請另外設(shè)計兩種基本結(jié)構(gòu)(要符合基本結(jié)構(gòu)的特點)。 4,用傳統(tǒng)流程圖表示求解以下問題的算法。 (1)有兩個

    2024年02月01日
    瀏覽(41)
  • 【Java入門合集】第二章Java語言基礎(chǔ)(三)

    【Java入門合集】第二章Java語言基礎(chǔ)(三)

    博主:命運之光 專欄:Java零基礎(chǔ)入門 學(xué)習(xí)目標(biāo) 掌握變量、常量、表達(dá)式的概念,數(shù)據(jù)類型及變量的定義方法; 掌握常用運算符的使用; 掌握程序的順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)的使用; 掌握數(shù)組的定義及使用方法; 掌握基本的輸入輸出方法; Java中的語句有很多種形式

    2024年02月03日
    瀏覽(91)
  • 【Java入門合集】第二章Java語言基礎(chǔ)(一)

    【Java入門合集】第二章Java語言基礎(chǔ)(一)

    博主:命運之光 專欄:Java零基礎(chǔ)入門 學(xué)習(xí)目標(biāo) 掌握變量、常量、表達(dá)式的概念,數(shù)據(jù)類型及變量的定義方法; 掌握常用運算符的使用; 掌握程序的順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)的使用; 掌握數(shù)組的定義及使用方法; 掌握基本的輸入輸出方法; 提示:不要去強(qiáng)記

    2024年02月02日
    瀏覽(33)
  • 《綜合與Design_Compiler》學(xué)習(xí)筆記——第一章綜合綜述 第二章verilog語言結(jié)構(gòu)到門級的映射 第三章 使用DC進(jìn)行綜合

    《綜合與Design_Compiler》學(xué)習(xí)筆記——第一章綜合綜述 第二章verilog語言結(jié)構(gòu)到門級的映射 第三章 使用DC進(jìn)行綜合

    2023.6.25 2023.6.27 和之前學(xué)的芯動力mooc中很多內(nèi)容相似,這篇整理的邏輯更好些 將RTL代碼轉(zhuǎn)換到基于工藝庫的門級網(wǎng)表。一般分為如下三個步驟。 (1)邏輯級綜合 設(shè)計被描述成 布爾等式 的形式,觸發(fā)器、鎖存器這樣的基本單元采用元件例化(instantiate)的方式表達(dá)出來,下面是

    2024年02月12日
    瀏覽(23)
  • 第二章(第二節(jié)):無窮小量和函數(shù)

    若 lim f(x) = 0 , 則稱函數(shù) f(x) 當(dāng) x → x 0 時是無窮小量,簡稱: 無窮小 。 ???? x→ x 0 定理1. 有限多個 無窮小量的代數(shù)和仍是無窮小量 定理2. 有限多個 無窮小量的積也是無窮小量 定理3.常數(shù)與無窮小量的積也是無窮小量 定理4.有界變量與無窮小量的積是無窮小量 當(dāng) x→

    2024年02月08日
    瀏覽(38)
  • 第二章:基本概念(下)

    人們往往將信號稱為**“軟件中斷”**。進(jìn)程收到信號,就意味著某一事件或異常情況的發(fā)生。 信號的類型很多,每一種分別標(biāo)識不同的事件或情況。采用 不同的整數(shù) 來標(biāo)識各種信號類型,并以SIGxxxx 形式的符號名加以定義。 內(nèi)核、其他進(jìn)程(只要具有相應(yīng)的權(quán)限)或進(jìn)程自

    2024年02月08日
    瀏覽(29)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包