個(gè)人覺(jué)得學(xué)習(xí)編程最有效的方法是閱讀專(zhuān)業(yè)的書(shū)籍,通過(guò)閱讀專(zhuān)業(yè)書(shū)籍可以構(gòu)建更加系統(tǒng)化的知識(shí)體系。
一直以來(lái)都很想深入學(xué)習(xí)一下C++,將其作為自己的主力開(kāi)發(fā)語(yǔ)言?,F(xiàn)在為了完成自己這一直以來(lái)的心愿,準(zhǔn)備認(rèn)真學(xué)習(xí)《C++ Primer Plus》。
為了提高學(xué)習(xí)效率,在學(xué)習(xí)的過(guò)程中將通過(guò)發(fā)布學(xué)習(xí)筆記的方式,持續(xù)記錄自己學(xué)習(xí)C++的過(guò)程。
for
循環(huán)for
循環(huán)可以輕松地完成需要重復(fù)執(zhí)行的任務(wù)。
for
循環(huán)的組成部分完成下面這些步驟:
C++循環(huán)設(shè)計(jì)中包括了這些要素,很容易識(shí)別??刂撇糠趾竺娴恼Z(yǔ)句叫作循環(huán)體,只要測(cè)試表達(dá)式為true,它便被執(zhí)行:
for(initialization; test-expression; update-expression)
body
test-expression
(測(cè)試表達(dá)式)決定循環(huán)體是否被執(zhí)行。
for
循環(huán)是入口條件(entry-condition)循環(huán)。這意味著在每輪循環(huán)之前,都將計(jì)算測(cè)試表達(dá)式的值,當(dāng)測(cè)試表達(dá)式為false時(shí),將不會(huì)執(zhí)行循環(huán)體。
update-expression
(更新表達(dá)式)在每輪循環(huán)結(jié)束時(shí)執(zhí)行,此時(shí)循環(huán)體已經(jīng)執(zhí)行完畢。通常,它用來(lái)對(duì)跟蹤循環(huán)輪次的變量的值進(jìn)行增減。然而,它可以是任何有效的C++表達(dá)式,還可以是其他控制表達(dá)式。
C++循環(huán)允許下面這種寫(xiě)法:
for (int i = 0; i< 5; i++)
{//循環(huán)內(nèi)容
}
C++中遞增運(yùn)算符(++
)(名稱(chēng)C++由此得到)和遞減運(yùn)算符(--
)常被用在循環(huán)中的運(yùn)算符,我們可以通過(guò)如下代碼,查看其使用效果:
#includeusing namespace std;
int main()
{int i = 0;
cout<< i++<< endl;
cout<< i<< endl;
cout<< ++i<< endl;
cout<< i<< endl;
cout<< i--<< endl;
cout<< i<< endl;
cout<< --i<< endl;
cout<< i<< endl;
}
輸出結(jié)果如下:
0
1
2
2
2
1
0
0
組合賦值運(yùn)算符表:
操作符 | 作用(L為左操作數(shù),R為右操作數(shù)) |
---|---|
+= | 將L+R賦給L |
-= | 將L-R賦給L |
*= | 將L*R賦給L |
/= | 將L/R賦給L |
%= | 將L%R賦給L |
使用逗號(hào)運(yùn)算符將兩個(gè)表達(dá)式合并為一個(gè):
int i = 0;
i++, i++;
cout<< i<< endl;
輸出結(jié)果為:2
逗號(hào)運(yùn)算符,確保先計(jì)算第一個(gè)表達(dá)式,然后計(jì)算第二個(gè)表達(dá)式。
在所有運(yùn)算符中,逗號(hào)運(yùn)算符的優(yōu)先級(jí)是最低的。例如:
cats = 17,240;
被解釋為:
(cats = 17), 240;
也就是說(shuō),將cats
設(shè)置為19
,240
不起作用。然而,由于括號(hào)的優(yōu)先級(jí)最高,下面的表達(dá)式將把cats
設(shè)置為240
——逗號(hào)右側(cè)的表達(dá)式值:
cats = (17,240);
關(guān)系運(yùn)算符表:
操作符 | 含義 |
---|---|
< | 小于 |
<= | 小于或等于 |
== | 等于 |
> | 大于 |
>= | 大于或等于 |
!= | 不等于 |
While
循環(huán)While
循環(huán)是沒(méi)有初始化和更新部分的for
循環(huán),它只有測(cè)試條件和循環(huán)體:
while(test-condition)
body
首先,程序計(jì)算圓括號(hào)內(nèi)的測(cè)試條件(test-condition)
表達(dá)式。如果該表法式為true
,則執(zhí)行循環(huán)體中的語(yǔ)句。與for
循環(huán)一樣,循環(huán)體也由一條語(yǔ)句或兩個(gè)花括導(dǎo)定義的語(yǔ)句塊組成。執(zhí)行完循環(huán)體后,程序返回測(cè)試條件,對(duì)它進(jìn)行重新評(píng)估,如果該條件為非零,則再次執(zhí)行循環(huán)體。測(cè)試和執(zhí)行將一直進(jìn)行下去直到測(cè)試條件為false
為止。
提示:在設(shè)計(jì)循環(huán)時(shí),請(qǐng)記住下面幾條直到原則。
記住,語(yǔ)句塊是由花括號(hào),而不是由縮進(jìn)定義的。
C++為類(lèi)型建立別名的方式有兩種,第一種是使用預(yù)處理器:
#define BYTE char
這樣,預(yù)處理器將在編譯程序時(shí)用char
替換所有的BYTE
,從而使BYTE
成為char
的別名。
第二種方法是使用C++(和C)的關(guān)鍵字typedef
來(lái)創(chuàng)建別名:
typedef char byte;
這樣,可以將byte
作為char
的別名。
do while
循環(huán)與for
循環(huán)和while
循環(huán)不同,do while
循環(huán)是出口條件(exit condition)循環(huán)。這意味著這種循環(huán)將首先執(zhí)行循環(huán)體,然后再判定測(cè)試表達(dá)式,決定是否應(yīng)繼續(xù)執(zhí)行循環(huán)。如果條件為false
,則循環(huán)終止:否則,進(jìn)入新一輪的執(zhí)行和測(cè)試,這樣的循環(huán)通常至少執(zhí)行一次,因?yàn)槠涑绦蛄鞅仨毥?jīng)過(guò)循環(huán)體后才能到達(dá)測(cè)試條件。下而是其句法:
do
body
while (test-condition);
四、基于范圍的for
循環(huán)(C++11)C++11新增了一種循環(huán):基于范圍(range-based)的for
循環(huán)。這簡(jiǎn)化了一種常見(jiàn)的循環(huán)任務(wù):對(duì)數(shù)組(或容器類(lèi),如vector
和array
)的每個(gè)元素執(zhí)行相同的操作,如下例所示:
double prices[2] = {3.2, 29.1};
for (double x : prices)
cout<< x<< endl;
其中,x
最初表示數(shù)組prices
的第一個(gè)元素。顯示第一個(gè)元素后,不斷執(zhí)行循環(huán),而x
依次表示數(shù)組的其他元素。因此,上述代碼顯示全部5個(gè)元素,每個(gè)元素占據(jù)一行??傊撗h(huán)顯示數(shù)組中的每個(gè)值。
要修改數(shù)組的元素,需要使用不同的循環(huán)變量語(yǔ)法:
for (double &x : prices)
{x = x * 0.8;
cout<< x<< endl;
}
符號(hào)&
表明x
是一個(gè)引用變量,這種聲明讓接下來(lái)的代碼能夠修改數(shù)組的內(nèi)容,而第一種語(yǔ)法不能。
cin.get(ch)與cin.get()
屬性 | cin.get(ch) | ch=cin.get() |
---|---|---|
傳遞輸入字符的方式 | 賦給參數(shù)ch | 將函數(shù)返回值賦給ch |
用于字符輸入時(shí)函數(shù)的返回值 | istream對(duì)象(執(zhí)行bool轉(zhuǎn)換后為true) | int類(lèi)型的字符編碼 |
到達(dá)EOF時(shí)函數(shù)的返回值 | istream對(duì)象(執(zhí)行bool轉(zhuǎn)換后為false) | EOF |
二維數(shù)組更像是一個(gè)表格——既有數(shù)據(jù)行又有數(shù)據(jù)列。
C++沒(méi)有提供二維數(shù)組類(lèi)型,但用戶(hù)可以創(chuàng)建每個(gè)元素本身都是數(shù)組的數(shù)組。例如:
int personHeightWeight [2][2] =
{{180, 78},
{168, 64}
}
cout<< personHeightWeight [0][1]<
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧