一.控制結構: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 ...