C++是一種功能強大且廣泛應用的編程語言,對于想要深入學習編程和算法的人來說,掌握C++是一個重要的里程碑。本文將帶你逐步了解C++編程的基礎知識,并介紹一些常見的算法和編程技巧幫你入門c++算法。
?
在c++算法入門教程(1) 中,我講解了什么是編程、安裝編譯環境、輸出、變量、輸入、for循環,沒看第一篇的可以去看看。
一、if選擇語句
在C++中,if
屬于選擇語句(conditional statement)。選擇語句用于根據條件的真假來執行不同的代碼塊。if
語句允許程序根據條件表達式的結果來確定要執行的代碼路徑。如果條件為真,則執行if
代碼塊中的語句;如果條件為假,則跳過if
代碼塊或執行與之關聯的else
代碼塊,簡單來說就是如果的意思,例如:
if (1+1 == 1) {cout << "1+1=1"; // 如果條件為真,則執行這里的代碼
} else {cout << "1+1不等于1"; // 如果條件為假,則執行這里的代碼
}
以上代碼的意思就是“如果1+1=1,那么輸出1+1=1,否則輸出1+1不等于1”,這里順便講一下,在c++中,“==”的意思是“等于”,而“=”的用處是“賦值”,所以在第一行不用=而用==。
二、switch多分支選擇語句
在C++中,除了if語句,我們還可以使用switch語句來進行多分支的選擇。switch語句通常用于當有多個互斥的條件需要判斷時,使得代碼更加清晰和易于維護。switch語句的基本結構如下:
switch (expression) {case value1:// 當expression的值等于value1時執行這里的代碼break;case value2:// 當expression的值等于value2時執行這里的代碼break;// ...可以有多個casedefault:// 如果沒有匹配的case,執行這里的代碼break;
}
這里的`expression`是要判斷的變量或表達式,`value1`、`value2`等是與`expression`進行比較的值。如果`expression`的值與某個`case`的值相匹配,就會執行對應的代碼塊。`break`語句用于退出switch語句,防止執行到下一個`case`。如果所有`case`都不匹配,就會執行`default`部分的代碼。
舉個例子,假設我們有一個數字,想要根據這個數字輸出對應的信息:
int number = 2;
switch (number) {case 1:cout << "你輸入的是1" << endl;break;case 2:cout << "你輸入的是2" << endl;break;case 3:cout << "你輸入的是3" << endl;break;default:cout << "輸入的不是1、2、3" << endl;break;
}
在這個例子中,如果`number`的值為2,那么會輸出“你輸入的是2”。
三、循環結構
我們已經介紹了`for`循環,除此之外,C++還提供了其他類型的循環結構,如`while`循環和`do-while`循環。
1. `while`循環
`while`循環在條件為真時重復執行代碼塊,直到條件為假。它的基本結構如下
while (condition) {// 循環體代碼
}
如果條件一開始就為假,那么循環體內的代碼將不會被執行。舉個例子:
int n = 3;while (n) {//只要n不為假(0)那么執行循環體內語句cout << n;n --; //使n-1 }
代碼運行后會顯示“123”。
2. `do-while`循環
`do-while`循環至少執行一次循環體,然后再判斷條件。如果條件為真,繼續執行循環。它的基本結構如下:
do {// 循環體代碼
} while (condition);
即使條件一開始就為假,`do-while`循環也會執行一次循環體。
四、數組
數組是C++中用于存儲多個值的變量。數組可以存儲固定大小的同類型元素序列。聲明數組的語法如下:
type arrayName[arraySize];//數據類型 數組名[數組中的變量數]
例如,聲明一個整型數組:
int numbers[5];
這將創建一個名為`numbers`的數組,它可以存儲5個整數。數組的索引從0開始,所以`numbers[0]`是第一個元素,`numbers[4]`是最后一個元素。比如:
int n[3];for (int i = 0;i < 3;i ++)n[i] = i;for (int i = 0;i < 3;i ++)cout << n[i];
運行后會輸出“012”。
五、函數
函數是一段可重復使用的代碼塊,它可以接受輸入(參數)并返回一個值,也可以不接收參數,只運行代碼。在C++中,函數的基本結構如下:
type functionName(parameters) {//返回值類型 函數名 (輸入的參數)// 函數體代碼return value;//返回一個值
}
例如,創建一個計算兩個數之和的函數:
int add(int a, int b) {return a + b;
}
int main() {cout << add(1,2);return 0;
}
在這個例子中,`add`函數接受兩個整數參數`a`(1)和`b`(2),返回它們的和(3),然后主函數再輸出和,還有一種特殊的返回值類型:void(無類型),這種函數只可以運行代碼,不能返回值。