C++學習小記
之前“看”過C++,但是純粹只是為了應付考試。現在想重新學習,久仰《C++ primer》大名,書之厚令我生畏,好記性不如爛筆頭,遂以博客形式筆記之。
本人編程菜鳥一枚,當中如有任何錯誤,歡迎指正!謝謝!
聲明:本文屬原創,轉載請留言我,謝謝!
一 "<<"與">>"
如果輸入輸出語句較長,那麼可以直接分行,該語句直到 “;” 結束
放書中例子:
std::cout << "the sum of " << v1 << "and" << v2
<< "is" << v1+v2 <<std::endl;
但是,被拆分的每一行語句後不能加“;”,因為這樣一句話變成了幾句獨立的話。
二 兩個注釋符號 “//”,“/*...*/”
“//” :單行注釋符,以換行符結束。
“/*...*/” : 以“/*”開始,”*/“結束,中間可以換行。但注意防止嵌套,否則很容易造成語句錯誤(遇到前面一個”*/“,注釋提前終止)
三 練習while語句時自己犯的一個錯誤
題目:編寫程序,提示用戶輸入兩個整數,打印出這兩個整數所指定的范圍內的所有整數
直接上錯誤代碼:
#include<iostream>
using namespace std;
int main()
{
int c1,c2,val;
cout << "please input two numbers" << endl;
cin >> c1 >> c2;
while((val <= c1 && val >=c2) || (val <= c2 && val >=c1))
{
cout << val << " ";
}
return 0;
}
自我分析:
錯誤原因之一 :顯然對while()語句沒有理解。當判斷條件為真是,執行循環體,否則跳出循環。初始化中系統自給 "val" 賦初值為零。所以程序可能一直跳不出循環。比如 "c1 = 1,c2 = 3"
錯誤原因之二 :“val” 的值在循環過程中並沒有改變。程序不會自動地遍歷“c1”和“c2”之間的值。
經過分析,附上可執行的正確代碼:
#include<iostream>
using namespace std;
int main()
{
int c1,c2,val;
cout << "Please enter input two numbers" << endl;
cin >> c1 >> c2;
if (c1 <= c2){
val = c1;
while(val <= c2){
cout << val << " ";//添加空格以區分數字
++val;
}
}
else{
val = c2;
while(val <= c1){
cout << val << " ";
++val;
}
}
return 0;
}
