Variables 循环中的可变活性

Variables 循环中的可变活性,variables,compiler-construction,for-loop,Variables,Compiler Construction,For Loop,我上了一门编译器课程,现在我正在练习准备考试。其中一个主题是 现在,在循环之外,如果我们有 1. int a = 1; 2. a++; 3. int b = 2; 4. a = b; 1. for (int i = 1; i < 3; i++) 那么变量“a”在1-2和4中是活的,对吗 在循环内部,如果我们有 1. int a = 1; 2. a++; 3. int b = 2; 4. a = b; 1. for (int i = 1; i < 3; i++) 1。对于(in

我上了一门编译器课程,现在我正在练习准备考试。其中一个主题是

现在,在循环之外,如果我们有

1. int a = 1;
2. a++;
3. int b = 2;
4. a = b;
1. for (int i = 1; i < 3; i++)
那么变量“a”在1-2和4中是活的,对吗

在循环内部,如果我们有

1. int a = 1;
2. a++;
3. int b = 2;
4. a = b;
1. for (int i = 1; i < 3; i++)
1。对于(int i=1;i<3;i++)
然后在循环中没有其他使用“i”值的操作,比如检查它的值等等,那么“i”只在赋值/增量点有效,对吗

基本上,问题是,对于上面提到的循环,控制变量是活在循环中还是在递增时?当然,除非该变量在循环中使用

变量“a”在1-2和4中有效,对吗

是的,没错。或者,由于我们通常谈论一个变量在给定步骤之后或之前(而不是期间)处于活动状态,我应该说:
a
在步骤1之后、步骤2之前和步骤4之后处于活动状态(假设
a
将在这些指令之后的一段时间使用)

对于上面提到的循环,控制变量是活在循环中还是仅在递增时

您必须考虑循环的每一步何时发生。循环的执行如下所示:

  • 我被初始化了
  • 身体执行
  • 检查循环条件(读取步骤1中设置的i值)
  • i递增(假设循环条件为真)
  • 身体开脱了
  • 循环条件为检查(读取步骤4中设置的i值)
  • 。。。以此类推,直到条件为假
  • 因此,每次在主体执行之后,通过读取主体执行之前设置的i值来检查条件。这意味着我必须在身体的整个执行过程中活着

    变量“a”在1-2和4中有效,对吗

    是的,没错。或者,由于我们通常谈论一个变量在给定步骤之后或之前(而不是期间)处于活动状态,我应该说:
    a
    在步骤1之后、步骤2之前和步骤4之后处于活动状态(假设
    a
    将在这些指令之后的一段时间使用)

    对于上面提到的循环,控制变量是活在循环中还是仅在递增时

    您必须考虑循环的每一步何时发生。循环的执行如下所示:

  • 我被初始化了
  • 身体执行
  • 检查循环条件(读取步骤1中设置的i值)
  • i递增(假设循环条件为真)
  • 身体开脱了
  • 循环条件为检查(读取步骤4中设置的i值)
  • 。。。以此类推,直到条件为假
  • 因此,每次在主体执行之后,通过读取主体执行之前设置的i值来检查条件。这意味着我必须在身体的整个执行过程中活着