針對每一個,在
逐一查看陣列或集合。 此非標準關鍵字在 C++/CLI 和原生 C++ 專案中皆可用。 但是,不建議使用。 請考慮改用標準 以範圍為基礎的 for 陳述式 (C++)。
所有執行階段
語法
for each (type identifier in expression) {
statements
}
參數
type
identifier 的類型。identifier
表示集合項目的反覆項目變數。當 identifier 是 追蹤參考運算子 (C++ 元件擴充功能) 時,您可以修改項目。expression
陣列運算式或集合。 集合項目必須如此,編譯器才能將其轉換為 identifier 類型。statements
要執行的一個或多個陳述式。
備註
for each 陳述式可用來逐一查看集合。 您可以修改集合中的項目,不過,您無法加入或刪除項目。
針對陣列或集合中的每個項目執行 statements。 在完成集合中所有項目的反覆項目之後,程式控制權會轉移到 for each 區塊之後的下一個陳述式。
for each 和 in 是即時線上關鍵字。
如需詳細資訊:
Windows 執行階段
需求
編譯器選項:/ZW
範例
本範例示範如何使用 for each 逐一查看字串。
// for_each_string1.cpp
// compile with: /ZW
#include <stdio.h>
using namespace Platform;
ref struct MyClass {
property String^ MyStringProperty;
};
int main() {
String^ MyString = ref new String("abcd");
for each ( char c in MyString )
wprintf("%c", c);
wprintf("/n");
MyClass^ x = ref new MyClass();
x->MyStringProperty = "Testing";
for each( char c in x->MyStringProperty )
wprintf("%c", c);
}
Output
Common Language Runtime
備註
CLR 語法與 All Runtimes 語法相同,但不同之處如下。
expression
Managed 陣列運算式或集合。 集合項目必須如此,編譯器才能將其從 Object 轉換為 identifier 類型。expression 會針對實作 IEnumerable、IEnumerable 的類型,或定義 GetEnumerator 方法的類型 (該方法會傳回實作 IEnumerator 或宣告 IEnumerator 中定義之所有方法的類型) 進行評估。
需求
編譯器選項:/clr
範例
本範例示範如何使用 for each 逐一查看字串。
// for_each_string2.cpp
// compile with: /clr
using namespace System;
ref struct MyClass {
property String ^ MyStringProperty;
};
int main() {
String ^ MyString = gcnew String("abcd");
for each ( Char c in MyString )
Console::Write(c);
Console::WriteLine();
MyClass ^ x = gcnew MyClass();
x->MyStringProperty = "Testing";
for each( Char c in x->MyStringProperty )
Console::Write(c);
}
Output