C 程式設計 學習筆記(五)語句

2021-07-27 09:59:39 字數 4107 閱讀 6811

1、條件語句

if(condition)

{statement}

elseif(condition)

{statement}

else{statement}

2、switch語句

switch(變數)

{case 常量表示式1:statement;break;

case 常量表示式2:statement;break;

…;default:statement;break;}

3、迭代語句

(1)while&do…while

while(condition)

statement;

先判斷條件再進行迴圈

do statement

while(condition)

先進行迴圈再判斷條件

都是condition為假時,終止迴圈

(2)for兩個形式

a判斷迴圈:for(initializer ; condition ; expression)

statement

initializer初始化乙個值,可以定義多個變數,但只能有乙個宣告語句,即變數基本型別要相同;condition迴圈進行的條件; expression負責修改initializer變數

b遍歷範圍:for(declaration:expression)

statement

expression是要遍歷的序列,可以是初始化列表、陣列、vector或者string;declaration定義變數,最簡單用auto型別說明符。如果要對序列進行讀寫操作,迴圈變數要宣告為引用型別。

4、跳轉語句

break:終止離它最近的while、do while、for或者switch語句

continue:只能在while、do while、for迴圈內部使用,繼續進入下個迴圈

goto:無條件跳轉到同一函式另乙個語句,少用 goto label; label:+語句

try:異常處理,不知道怎麼用

**exercise:**1讀入乙個txt檔案,用switch統計母音字母,包括大小寫,統計空格、製表符、換行符的數量,統計含有下面序列的數量(ff、fl、fi),寫在txt檔案的後面。

c++對txt的讀取和寫入,參考**:

#include 

#include

#include

#include

#include

using

namespace

std;

int count(string str);

static

int acount = 0, ecount = 0, icount = 0, ocount = 0, ucount = 0, \

black = 0, changeline = 0, tab = 0, ff = 0, fl = 0, fi = 0;//為了實現累加,這裡採用了靜態變數

void countletter()

else

這個操作是逐個單詞讀入,每個單詞分行

while (getline(myfile, s)) //讀取txt文件每一行,以換行符為分界線

}outfile <<"\n"

<<"the result of counting is"

<<"\n"

//結果輸出,寫到新建的文件裡面

<< "acount="

<"\n"

<< "ecount="

<"\n"

<< "icount="

<"\n"

<< "ocount="

<"\n"

<< "ucount="

<"\n"

<< "black="

<"\n"

<< "changeline="

<"\n"

<< "tab="

<"\n"

<< "ff ="

<"\n"

<< "fl="

<"\n"

<< "fi="

string str)

for (auto &c:str) //取str中的位址,這裡表示c是str的別名

}return

0; //c++的函式只能有乙個返回值,所以下面的形式是錯的

//解決的辦法就是(1)採用static靜態變數(2)用結構體或者陣列,就可以包含多個變數

/*return acount,ecount,icount,ocount,ucount,\

black,changeline,tab,ff, fl,fi;*/

}

2編寫一段程式,從標準輸入中讀取若干string物件並查詢重複出現的單詞,即乙個單詞緊跟在另乙個單詞後面,記錄重複出現次數最大的單詞,如果不存在,說明單詞沒有重複出現過。

#include 

#include

#include

#include

#include

using

namespace

std;

void repeatconut()

num=wordset.size(); //返回wordset中元素的個數;

cout

<< "the num of word is "

<< num << endl;

for (int i = 0; i <=num-2; i++)//遍歷容器中的元素,遇到相同計數加1,不同重新計數

else}}

}

3輸入兩個包含整數的vector物件,檢驗其中乙個vector是否為另乙個的字首。

對於cin的讀取有幾個形式:

(1)cin可以連續從鍵盤讀取想要的資料,以空格、tab或換行作為分隔符。當cin>>從緩衝區中讀取資料時,若緩衝區中第乙個字元是空格、tab或換行這些分隔符時,cin>>會將其忽略並清除,繼續讀取下乙個字元

(2)不想略過空白字元,那就使用 noskipws 流控制。比如cin>>noskipws>>input;或者用cin.get()可以讀取到換行和空格,如果只要讀取的到具體數字,但是要判斷換行和空格可以參考上面的例子

可以參考下面**:

#include 

#include

#include

#include

#include

using

namespace

std;

int prefixtion(vector

a, vector

b);

void prefix()

while (cin.get()!='\n'); //通過這個形式可以實現輸入到換行符就停止,同時不會讀入空格

cout

<< "the second one"

<< endl;

i = 0;

dowhile (cin.get() != '\n');

cout

<< "the size of two strings is "

<< numset1.size()<<" and "

<< numset2.size() << endl;

if (numset1.size()>numset2.size())

else

}int prefixtion(vector

a, vector

b)}

return flag;

}

4讀入乙個txt檔案,用while檢查,當乙個單詞連續出現兩次或者文字讀完終止

#include 

#include

#include

#include

#include

using

namespace

std;

void txtending()

}outfile.close();

}

C 學習筆記五 語句

一 復合語句 塊 復合語句,通常被稱為塊,是用一對花括號括起來的語句序列 也可能是空的 塊標識了乙個作用域,在塊中引入的名字只能在該塊內部或巢狀在塊中的子塊裡訪問。通常,乙個名字只從其定義處到該塊的結尾這段範圍內可見。復合語句用在語法規則要求使用單個語句但程式邏輯卻需要不止乙個語句的地方。例如,wh...

Lua 學習筆記(五) 語句

一 賦值 多重賦值 每個值或每個變數之間以逗號分隔 例如 a,b 10,20 lua先對等號右邊的所有元素求值,然後才執行賦值。二 區域性變數和塊 local建立區域性變數,作用域僅限於宣告它們的程式塊。三 控制結構 1.if then else end 例如 2.for 數值型for for va...

物件導向程式設計(C )學習筆記五

拷貝建構函式是一種特殊的建構函式 copy constructor 1 它是建構函式,所以函式名是類名,沒有返回值 2 它是特殊的建構函式,引數形式是固定的 例如,class object 拷貝建構函式的含義 以乙個物件為藍本,來構造另乙個物件。object b object a b 稱作 以b為藍...