C語言是面向過程的柒爵,而C++是面向?qū)ο蟮?/p>
C和C++的區(qū)別:
C是一個結(jié)構(gòu)化語言,它的重點在于算法和數(shù)據(jù)結(jié)構(gòu)。C程序的設(shè)計首要考慮的是如何通過一個過程,對輸入(或環(huán)境條件)進行運算處理得到輸出(或?qū)崿F(xiàn)過程(事務(wù))控制)笙瑟。
C++,首要考慮的是如何構(gòu)造一個對象模型癞志,讓這個模型能夠契合與之對應(yīng)的問題域往枷,這樣就可以通過獲取對象的狀態(tài)信息得到輸出或?qū)崿F(xiàn)過程(事務(wù))控制。 所以C與C++的最大區(qū)別在于它們的用于解決問題的思想方法不一樣。之所以說C++比C更先進错洁,是因為“ 設(shè)計這個概念已經(jīng)被融入到C++之中 ”茅信。
C與C++的最大區(qū)別:在于它們的用于解決問題的思想方法不一樣。之所以說C++比C更先進墓臭,是因為“ 設(shè)計這個概念已經(jīng)被融入到C++之中 ”,而就語言本身而言妖谴,在C中更多的是算法的概念窿锉。那么是不是C就不重要了,錯膝舅!算法是程序設(shè)計的基礎(chǔ)嗡载,好的設(shè)計如果沒有好的算法,一樣不行仍稀。而且洼滚,“C加上好的設(shè)計”也能寫出非常好的東西。
現(xiàn)在考慮一個問題技潘,如果我們想打印一千次”Hello,World!”遥巴,我們該怎么辦呢?我們是不是得拷貝一千次 printf(“Hello,World!”) 計算機本來就是為了解決那些繁雜的運算而存在的享幽,編程的設(shè)計也是如此铲掐。這節(jié)我們來認識除了分支結(jié)構(gòu)外的另一個非常重要的結(jié)構(gòu)——循環(huán)結(jié)構(gòu),掌握了這些語法值桩,能替我們節(jié)省很多的繁瑣工作摆霉。
我不是目錄!
1. while循環(huán)結(jié)構(gòu)
2. do_while循環(huán)結(jié)構(gòu)
3. for循環(huán)結(jié)構(gòu)
4. break與continue
5. 循環(huán)的嵌套使用
while循環(huán)結(jié)構(gòu)
我們來認識第一個循環(huán)語法——while奔坟,它的結(jié)構(gòu)是這樣的携栋。
while(表達式) { 語句體; }
while后面的表達式結(jié)果為真的時候,就執(zhí)行語句體咳秉,直到表達式為假的時候婉支,才結(jié)束循環(huán)。我們直接來看實例滴某。
小編推薦一個學(xué)C語言/C++的學(xué)習(xí)裙【 六九九磅摹,四七零,五九六 】霎奢,無論你是大牛還是小白户誓,是想轉(zhuǎn)行還是想入行都可以來了解一起進步一起學(xué)習(xí)!裙內(nèi)有開發(fā)工具幕侠,很多干貨和技術(shù)資料分享帝美!
當(dāng)i不等于10的時候,則執(zhí)行while結(jié)構(gòu)里面的語句體晤硕,直到i == 10的時候才退出循環(huán)悼潭。
例題:利用while結(jié)構(gòu)反向的打印1~10的數(shù)庇忌。
do_while循環(huán)
do_while循環(huán)跟while循環(huán)是有血緣關(guān)系的,我們先來了解一下它的語法舰褪。
do { 語句體; }while(表達式);
其實跟while也差不多是吧皆疹,那么它們的區(qū)別是什么?do_while循環(huán)是先執(zhí)行一次語句體占拍,再來對表達式進行判斷略就,當(dāng)表達式結(jié)果為假的時候就退出循環(huán)。我知道文字很難看得懂晃酒,我們還是直接上栗子表牢。
while與do-while的區(qū)別,do-while在判斷表達式之前贝次,會先執(zhí)行一次語句體崔兴。
再給一個例子:
for循環(huán)
for循環(huán)結(jié)構(gòu)的特點是——直觀。結(jié)構(gòu)如下:
for(表達式1;表達式2;表達式3) { 語句體; }
它等價于下面的while循環(huán)蛔翅。
表達式1; while(表達式2) { 語句; 表達式3; }
表達式1和表達式3一般都是賦值表達式敲茄,表達式2是判斷的表達式,還是直接來個例子搁宾。
小編推薦一個學(xué)C語言/C++的學(xué)習(xí)裙【 六九九折汞,四七零,五九六 】盖腿,無論你是大牛還是小白爽待,是想轉(zhuǎn)行還是想入行都可以來了解一起進步一起學(xué)習(xí)!裙內(nèi)有開發(fā)工具翩腐,很多干貨和技術(shù)資料分享鸟款!
對比一下之前while和do-while的版本,可見for更加直觀茂卦、緊湊何什。
當(dāng)然你可以把上面的for改成如下的版本 int i = 0; for(;i < 10;i++) { printf("%d ",i); }
到這里我們已經(jīng)可以看出來,無論是while等龙、do-while還是for处渣,它們只是語法結(jié)構(gòu)上的不同,實際上都能實現(xiàn)同一種需求蛛砰。
break與continue
在學(xué)習(xí)循環(huán)結(jié)構(gòu)的時候罐栈,經(jīng)常會有人遇到“死循環(huán)”,死循環(huán)就是永遠沒有推出循環(huán)的條件泥畅。
類似這些例子就會不斷的打印出”Hello,World!”荠诬,第一個可能需要解釋一下,在C語言中,非零表示真柑贞,零表示假方椎。在我們編寫程序利用到循環(huán)結(jié)構(gòu)的時候,我們就應(yīng)該多多注意循環(huán)終止的條件钧嘶。
上面只是個細節(jié)的擴展棠众,我們繼續(xù)談重點。現(xiàn)在假設(shè)我們碰到這種情況有决,我們想構(gòu)造一個死循環(huán)摄欲,讓用戶輸入密碼,直到輸入正確才跳出循環(huán)結(jié)構(gòu)疮薇,該怎么實現(xiàn)?
break的作用我注,之前我們已經(jīng)在分支結(jié)構(gòu)中的swtich結(jié)構(gòu)認識了按咒。如果放在循環(huán)結(jié)構(gòu)中,它就是直接跳出自己所處的循環(huán)結(jié)構(gòu)但骨。而continue励七,就是跳到下一次循環(huán),我們直接來看個例子:利用循環(huán)結(jié)構(gòu)打印1~10的數(shù)字奔缠,但是不打印其中的數(shù)字5掠抬。
當(dāng)執(zhí)行到if語句里面的continue時,就直接跳過了下面的printf語句校哎,直接跳過這一次的循環(huán)執(zhí)行下一次的循環(huán)两波。
循環(huán)的嵌套
就像上一節(jié)說到的,if和else if闷哆、swtich等分支結(jié)構(gòu)都是可以嵌套使用的腰奋,在循環(huán)結(jié)構(gòu)中也是這樣,while抱怔、do-while和for都可以按照需求進行嵌套劣坊。不過循環(huán)嵌套得越多,程序的效率就越低屈留。
之前看到C語言經(jīng)典例題:1局冰、2、3灌危、4個數(shù)字能組成多少個互不相同且無重復(fù)數(shù)字的三位數(shù)都是多少康二。
小編推薦一個學(xué)C語言/C++的學(xué)習(xí)裙【 六九九,四七零乍狐,五九六 】赠摇,無論你是大牛還是小白,是想轉(zhuǎn)行還是想入行都可以來了解一起進步一起學(xué)習(xí)!裙內(nèi)有開發(fā)工具藕帜,很多干貨和技術(shù)資料分享烫罩!
關(guān)于循環(huán)結(jié)構(gòu),暫時就先寫到這里洽故,以后如果有需要再繼續(xù)補充贝攒。如果有什么錯誤的地方歡迎指正,如果有什么寫得不太好的地方也請多多包涵时甚。
這些是C/C++能做的
服務(wù)器開發(fā)工程師隘弊、人工智能、云計算工程師荒适、信息安全(黑客反黑客)梨熙、大數(shù)據(jù) 、數(shù)據(jù)平臺刀诬、嵌入式工程師咽扇、流媒體服務(wù)器、數(shù)據(jù)控解陕壹、圖像處理质欲、音頻視頻開發(fā)工程師、游戲服務(wù)器糠馆、分布式系統(tǒng)嘶伟、游戲輔助等