for (dataType rangeVariable : array)
statement;
int numbers[] = {3, 6, 9};
可以使用基於範圍的 for 迴圈來顯示 numbers 陣列的內容。語句如下:for(int val : numbers) { cout << "The next value is "; cout << val << endl; }因為 numbers 陣列有 3 個元素,所以該迴圈將疊代 3 次。第一次它疊代時,val 變數將接收 numbers[0] 中的值;在第二次迴圈疊代期間,它將接收 numbers[1] 的值;在第三次迴圈疊代期間,它將接收 numbers[2] 的值。
The next value is 3
The next value is 6
The next value is 9
for (auto val : numbers) { cout << "The next value is "; cout << val << endl; }下面的程式使用了基於範圍的 for 迴圈來顯示一個 string 變數的元素。
//This program demonstrates the range-based for loop #include <iostream> #include <string> using namespace std; int main () { string planets []= { "Mercury", "Venus", "Earth", "Mars", "Jupiter", "Saturn", "Uranus", "Neptune", "Pluto(a dwarf planet)" }; // Display the values in the array cout << "Here are the planets: n "; for (string val : planets) cout << val << endl; return 0; }程式輸出結果為:
Here are the planets:
Mercury
Venus
Earth
Mars
Jupiter
Saturn
Uranus
Neptune
Pluto(a dwarf planet)
&
符號。下面程式即顯示了這樣一個範例,它使用了基於範圍的 for 迴圈來將使用者輸入的資料儲存到一個陣列中。
//This program uses a range-based for loop //to modify the contents of an array. #include <iostream> using namespace std; int main () { const int SIZE = 5; int numbers[SIZE]; //Get values for the array. for (int &val : numbers) { cout << "Enter an integer value: "; cin >> val; } // Display the values in the array. cout << "nHere are the values you entered: n"; for (int val : numbers) cout << val << " "; cout << endl; return 0; }程式輸出結果:
Enter an integer value: 10
Enter an integer value: 20
Enter an integer value: 30
Enter an integer value: 40
Enter an integer value: 50
Here are the values you entered:
10 20 30 40 50
&
符號,這表示它被宣告為參照變數。當迴圈執行時,val 變數將不再只是陣列元素的副本,而是變成了元素本身的別名。因此,對 val 變數作出的任何修改都會實際作用於它當前參照的陣列元素。&
符號,這是因為在此無須將 val 宣告為參照變數。該迴圈只是要顯示陣列元素,而不是改變它們。for (auto &val : numbers) { cout << "Enter an integer value: "; cin >> val; }