为什么我不能在 For 循环中使用 ==
本文关键字:循环 For 不能 为什么 | 更新日期: 2023-09-27 18:31:27
我不知道以前是否问过这个问题,但我仍然无法找到答案。我的问题是这个;在 For 循环中,这是可以接受的。
int k = 0;
for (int i = 0; i <= 10; i++)
k++;
但这不是:
int k = 0;
for (int i = 0; i == 10; i++)
k++;
为什么我不能使用"=="来确定条件是否已满足?我的意思是,这两个表达式都根据情况返回真或假,后者适用于 If 循环。
int k = 10;
if (k == 10)
{
// Do stuff.
}
在我作为业余程序员期间,这个问题的答案一直困扰着我很长一段时间,但直到现在我还没有搜索过它。
条件时,for
循环将运行。在开始时i = 0
,所以你的测试i == 10
永远不会满足,因此循环的主体永远不会被执行。
另一方面,您可以使用i == 0
条件,并且循环只会执行一次:
for (int i = 0; i == 0; i++)
k++;
这就是为什么如果您希望 for 循环执行多次,则需要为迭代器变量提供一个<
或>
的条件,以便在此迭代器变量递增/递减时可以多次满足它。
For 循环工作,直到条件为真,这样你就可以写
for (int i = 0; i <= 10; i++)
k++;
当您输入 i==10 时,它会检查 i 的条件是否等于 10。 显然 i = 0 在初始阶段,所以循环中断
因此,如果您想在某种条件下中断循环,那么最好应该使用
for (int i = 0; i <= 10; i++)
{
if(i==5) // test with your condition
break;
k++;
}
你绝对可以写这样的条件。
只是没有多大意义。
以下是for
循环的分解语法:
for(<initial statement>;<boolean expression - keep going while true>;<statement performed after each iteration>)
所以在你描述的典型场景中
for (int i = 0; i <= 10; i++)
k++;
最初的声明是i
声明。只要i
保持 10 或更少,循环就会运行,并且在每次迭代后,i
将递增 1。
总而言之 - 你完全可以写i == 10
,只是它没有多大意义,因为循环不会运行,因为i
已经是 0。如果您已将初始条件替换为int i = 10
则它只会运行一次。您也可以将i != 10
编写为条件,然后循环将执行 10 次。