C primer學習1 4 控制流

2021-07-01 23:42:20 字數 1341 閱讀 5404

一.控制結構:while 語句、for 語句、if 語句

二、讀取數量不定的輸入資料

三、編譯器可以檢查出的錯誤

一、控制結構

順序、選擇、迴圈三種控制結構。

迴圈結構:while、for

選擇結構:if 、case

順序結構

while、for的區別:

. for迴圈中,迴圈控制變數的初始化和修改都放在語句頭部分,形式簡潔,適用於迴圈次數已知的;

.while 迴圈中,迴圈控制變數的初始化一般放在while 語句之前,迴圈控制變數的修改一般放在迴圈體中,比較適用於迴圈次數不知道的情況

二、從鍵盤讀取未知數目的輸入資料

#include

int main()

std:

:cout<<"sum is"

<:

:endl;

return

0;}

注意:

資料讀取操作是在while的迴圈條件裡面完成的while(std::cin>>value)

while 迴圈條件的求值就是執行表示式std::cin>>value , 此表示式的意思是從標準輸入讀取下乙個數,儲存在value中。輸入運算子返回其左側運算物件,在本例中std::cin。因為,次迴圈條件是檢測std::cin;

當我們使用乙個istream物件作為條件時,其效果是檢測流的狀態。如果流是有效的,即流未遇到錯誤,那麼檢測成功。當遇到檔案結束符(end -of -file),或遇到乙個無效輸入(如讀入的值不是乙個整數),istream物件的狀態會變為無效。處於無效狀態的istream物件會使條件變為假。因此,我們的while迴圈會一直執行直至遇到檔案結束符或輸入錯誤.檔案結束符:在windows系統中是:ctrl +z ,然後按enter。在 unix/linux/macos中是ctrl+d.

三、編譯器可以檢查出的錯誤

語法錯誤

型別錯誤

宣告錯誤

編譯器無法檢測出的錯誤:邏輯錯誤,該類錯誤一般需要單步跟蹤等進行除錯,工具如gdb等。

例項:

// 求從50-100的所有自然數之和

#include

int main()

std::cout

<<"the sum is "

std::cout

<<"value is"

return

0;}

C Primer 學習筆記 複製控制

複製建構函式 賦值操作符和析構函式總稱為複製控制。一.複製建構函式 1.複製建構函式用途 只有單個形參,而且該形參是對本類型別物件的引用 通常是const修飾 的建構函式,稱為複製建構函式,它通常可用於 1.根據另乙個同型別的物件顯示或隱式初始化乙個物件.string str1 100000 str...

C primer學習 拷貝控制 1

1 我們使用 定義變數 2 從乙個返回型別為非引用的函式返回物件 3 用花括號列表初始化乙個陣列中的元素或者乙個聚合類的成員.4 某些類型別對它們所分配的物件使用拷貝初始化.point global point foo bar point arg 第1處 第4,5初 return heap 第6處 ...

C primer學習 拷貝控制 3

strblob const strblob rhs 拷貝初始化 strblob operator const strblob rhs 練習 定義乙個使用引用計數的hasptr類class hasptr 在拷貝建構函式中定義三個成員,並且初始化引用計數為1 hasptr const hasptr h ...