当前位置: 首页 > 知识库问答 >
问题:

循环中的前增量和后增量之间的区别?

伯晨
2023-03-14

for循环中的++ii++有区别吗?这仅仅是语法问题吗?

共有1个答案

欧阳斌
2023-03-14

a++被称为后缀。

将1添加到a,返回旧值。

++A称为前缀。

将1添加到a,返回新值。

C#:

string[] items = {"a","b","c","d"};
int i = 0;
foreach (string item in items)
{
    Console.WriteLine(++i);
}
Console.WriteLine("");

i = 0;
foreach (string item in items)
{
    Console.WriteLine(i++);
}

输出:

1
2
3
4

0
1
2
3

foreachwhile循环取决于您使用的增量类型。对于下面这样的for循环,没有任何区别,因为您没有使用i:

for (int i = 0; i < 5; i++) { Console.Write(i);}
Console.WriteLine("");
for (int i = 0; i < 5; ++i) { Console.Write(i); }

0 1 2 3 4
0 1 2 3 4

如果使用评估值,则增量类型变得重要:

int n = 0;
for (int i = 0; n < 5; n = i++) { }
 类似资料:
  • 问题内容: 我正在做一些有关Java的研究,发现这很令人困惑: 这是永无止境的循环! 有人很好地解释了为什么会发生这种事情吗? 问题答案: 上面的循环与以下内容基本相同:- 3 次你的一部分声明- ,被评估为: - 您需要从此处删除分配,以使其起作用:- (根据评论的OP请求) 的行为:- 就注释中指定的问题而言,以下表达式的结果:- 获得如下:- 让我们标记第二条语句的不同部分:- 现在,首先将

  • 问题内容: 我了解对此主题有很多疑问。但是我仍然有些困惑,不确定何时使用这些操作。我正在为参加考试而做的旧考试。其中一种方法返回可访问的残疾人可用教室的数量。我编写了counter方法,但不确定是应该先递增还是递后递增计数器。我对它如何与方法中的return语句混淆。我仍然不知道该方法将在下面返回什么值。其他问题未在方法中显示返回值,因此我对它的工作方式感到困惑。这是代码: 问题答案: 当您要在表

  • 问题内容: 我不明白为什么这个职位增加方程不增加。我以为在+=操作之后,该值将增加1,然后围绕i的第二次将具有1值。但是输出是一个零零的无限循环。有谁能解释为什么“ i”不增加。 问题答案: @ njzk2的答案是正确的,但指出正确的 原因 很有用。 还有其他可能性-例如,为什么Java在分配后不执行postincrement运算符?(答案:因为那不是Java语言设计者选择的) Java语言规范第

  • 问题内容: 当我偶然发现名为JSpeed-Javascript优化的项目时,我正在浏览Google Code。 我注意到优化之一是更改为for循环语句。 优化之前 优化后 我知道前后的增量是什么,但是知道如何加快代码速度吗? 问题答案: 这是我阅读并可以回答你的问题:“前递增()加一的值,然后返回;相反,收益则增加了一个给它,这 _在理论上_中创建一个临时变量存储的值的结果在执行增量操作之前”。

  • 如何在Swift3中编写以下内容? 这是我自己的尝试

  • 问题内容: 我一直想知道,一般而言,在循环之前声明一个扔掉的变量(而不是在循环内部重复)是否会产生(性能)差异?Java中的一个例子(毫无意义): a)循环前声明: b)循环内的声明(反复): a或b哪个更好? 我怀疑重复变量声明(示例b)在理论上会产生更多开销,但是编译器足够聪明,因此无关紧要。示例b的优点是更紧凑,并将变量的范围限制在使用它的地方。尽管如此,我还是倾向于根据示例a进行编码。 问