首先对不起,我真的认为这是一个愚蠢的问题,但我已经坚持了一段时间。也许你可以帮助我。问题是我不能真正理解代码中的错误。所以让我们来看看。
void enter()
{
int init= 1, end= 2;
float jump= 0.2;
create(init, end, jump);
}
void create(int Init, int End, float Jump)
{
float i;
int total = 0;
for(i = Init; i < End; i + Jump)
total += 1;
}
它没有退出循环,我不明白为什么。
答案 0 :(得分:4)
问题在于:
i + Jump
这不会改变i
,它只是评估。将其更改为:
i += Jump
它应该可以正常工作。
答案 1 :(得分:2)
循环是无限的,因为变量i
在循环中没有被更改。更改此声明
for(i = Init; i < End; i + Jump)
到
for(i = Init; i < End; i += Jump)
也许有一种感觉来定义函数,因为返回类型int
不存在?例如
int create(int Init, int End, float Jump)
{
//...
return total;
}
答案 2 :(得分:0)
i + Jump
这不会修改i
,因此根据初始条件i < End
小于{{TRUE
,Init
总是被评估为End
1}})。
您需要更改为i += End
以继续增加i.