【问题标题】:Why is it that I can't use == in a For loop?为什么我不能在 For 循环中使用 ==?
【发布时间】:2013-09-14 08:14:50
【问题描述】:

我不知道以前是否有人问过这个问题,但我仍然无法找到答案。我的问题是这个;在 For 循环中,这是可以接受的。

int k = 0;

for (int i = 0; i <= 10; i++)
    k++;

但这不是:

int k = 0;

for (int i = 0; i == 10; i++)
    k++;

为什么我不能使用'=='来判断条件是否满足?我的意思是,这两个表达式都根据情况返回 true 或 false,而后者适用于例如 If 循环。

int k = 10;

if (k == 10)
{
    // Do stuff.
}

在我作为业余程序员期间,这个问题的答案一直困扰着我很长一段时间,但我直到现在才搜索它。

【问题讨论】:

  • 一个for循环运行条件为真...
  • 好的,这为我清除了一切。我怎么没想到呢?因此,while 循环替代方案。
  • 您可以使用==,但您最多可以迭代一次。
  • @OliCharlesworth 这是对合法问题的合法答案。
  • @HamletHakobyan:这取决于您在增量语句中添加的内容......无操作将永远运行。

标签: c# for-loop


【解决方案1】:

当您输入 i==10 时,它会检查 i 的条件是否等于 10。显然 i =0 在初始阶段,所以循环爆发了

所以如果你想在某些情况下打破循环,那么最好你应该使用

for (int i = 0; i <= 10; i++)
{
    if(i==5) // test with your condition
    break;
    k++;

}

【讨论】:

    【解决方案2】:

    for 循环将在条件满足时运行。在开头i = 0,所以你的测试i == 10永远不会满足,因此循环体永远不会执行。

    另一方面,您可以使用i == 0 条件并且循环只会执行一次:

    for (int i = 0; i == 0; i++)
        k++;
    

    这就是为什么如果你想要一个 for 循环执行多次的原因,你需要为迭代器变量提供一个条件 &lt;&gt; 以便在这个迭代器时可以多次满足它可变增量/减量。

    【讨论】:

    • 也许提一下for (int i = 0; i != 10; i++)会有所帮助?
    【解决方案3】:

    For循环一直工作到条件为真,所以你可以写

    for (int i = 0; i <= 10; i++)
    k++;
    

    【讨论】:

    • 您的意思是只要条件为真,for 循环就会执行,但 != 的示例很有帮助。
    【解决方案4】:

    你绝对可以写出这样的条件。

    这没有多大意义。

    这是for 循环的分解语法:

    for(&lt;initial statement&gt;;&lt;boolean expression - keep going while true&gt;;&lt;statement performed after each iteration&gt;)

    所以在你描述的典型场景中

    for (int i = 0; i <= 10; i++)
        k++;
    

    初始语句是i 的声明。只要 i 保持在 10 或更少,循环就会运行,并且在每次迭代后,i 将增加 1。

    总结一下——你完全可以写i == 10,只是它没有多大意义,因为循环不会运行,因为i已经是0。如果你用@987654329替换了初始条件@ 那么它只会运行一次。你也可以写i != 10作为条件,然后循环会执行10次。

    【讨论】:

    • 见鬼,又迟到了! >_
    猜你喜欢
    • 2019-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-24
    • 1970-01-01
    • 1970-01-01
    • 2022-01-19
    • 2018-10-11
    相关资源
    最近更新 更多