int a, b, c;
a = 1;
b = 2;
c = a + 2*b;
for (a=1; c<15; a++)
{
Console.WriteLine(c.ToString());
}
Console.ReadLine();
我有一个简单的问题。我是否必须根据初始化变量来定义条件?
在上面的例子中,我希望循环在变量“a”变为10时停止,因此变量“c”将小于15。
但输出是“5”的无限行。我希望我的输出为14。
我做错了什么?
答案 0 :(得分:5)
在循环内部移动c更改,或者您将迭代而不结束:
for (a=1; c<15; a++)
{
c = a + 2*b;
Console.WriteLine(c.ToString());
}
答案 1 :(得分:1)
如果你真的想要,你可以省略for循环的所有3个部分,所以它基本上变成了while(true)
循环
for(;;)
所以不,它不需要。
但为了使你的程序有效,你需要更新循环中c的值
for (a=1; c<15; a++)
{
c = a + 2*b;
Console.WriteLine(c.ToString());
}
答案 2 :(得分:1)
我必须根据初始化变量来定义我的条件吗?
不,你不能定义你想要的任何条件。
我做错了什么?
你永远不会有这样的条件false
它会像你的情况一样永远地运行。
您只需在循环开始前更改c
一次:
c = a + 2*b;
for (a=1; c<15; a++)
{
Console.WriteLine(c.ToString());
}
一旦进入循环,c
永远不会再次更改!将更改的部分移动到循环中:
for (a=1; c<15; a++)
{
c = a + 2*b;
Console.WriteLine(c.ToString());
}
您甚至可以使用bool
变量
bool condition = true;
for (int a = 0; condition; i++)
{
c = a + 2*b;
if (c > 15)
{
condition = false;
}
}
编辑
你甚至可以在for循环的比较块中进行计算,它可以工作:
for (a = 0; (c = a + 2 * b) < 15; a++)
{
Console.WriteLine(c.ToString());
}
免责声明:我不推荐它,因为阅读它是神秘而可怕的。
答案 3 :(得分:0)
A 内部条件:
for (a=1; a<=10; a++)
{
c = a + 2*b;
Console.WriteLine(c.ToString());
}
当 c 变为14时,循环将停止。