4

一个简单的 for 语句是:

 for(int i = 0/*A Optional*/; i < 10/*B Optional*/; i++/*C Optional*/) {
 }

现在我可以在 for 语句的初始化代码(A)中初始化多少个变量?另外,我将如何在 for 语句的初始化代码(A)中初始化这些变量?

4

3 回答 3

6

你想写多少就写多少,但声明仅限于同一类型。(对于初始化,请参见下面的扩展和 Wugs 的回答。)

for (int a = 1, b = 2, c = 3 ; ; ) {
    break;
}

(可选)ForInit部分可以是:

  1. 如果 ForInit 代码是语句表达式列表(第 14.8 节),则表达式按从左到右的顺序计算;它们的值(如果有)将被丢弃。

  2. 如果 ForInit 代码是一个局部变量声明,它的执行就好像它是一个出现在块中的局部变量声明语句(第 14.4 节)。

  3. 如果 ForInit 部分不存在,则不执行任何操作。

上面带有声明的示例代码的格式为for(LocalVariableDeclaration;;).

于 2012-07-25T19:44:27.560 回答
3

您可以初始化任意类型的任意数量,但如果您使用内联声明,则所有声明的变量必须是相同的类型,就像 pst 提到的那样。

for (int i = 1, j = 0, k = -1; ; );

string s;
double d;

for (s = "", d = 1.5; ; );
于 2012-07-25T19:47:30.423 回答
1

您可以使用逗号分隔 for 循环中的语句,因此您可以根据需要初始化任意数量的变量。如果你想初始化几个变量,你的 for 循环应该是这样的:

 for(int i = 0, x = 1, d = 2; i < 10; i++, x++) {
 }

它们必须是同一类型。

于 2012-07-25T19:50:51.330 回答