【问题标题】:This program is going into infinite loop [closed]该程序将进入无限循环[关闭]
【发布时间】:2014-07-15 04:51:30
【问题描述】:
#include <stdio.h>

int i;
int buf[20];

void main(){
    int x = 3;
    for(i = 6; i < 12; i+2){
        buf[i] = 5;
        printf("print1 : %d \n", i);
        buf[i+1] = 5;
        printf("print 2 :%d \n", i);
   }

   for(i = 6; i < 12; i++){
       printf("%d\n", buf[i]);
   }

}

此代码进入 infine 循环并仅打印 打印 1:6 打印 2:6。 为什么?

【问题讨论】:

  • 在第一个循环中增加i :)

标签: c for-loop infinite-loop


【解决方案1】:

因为你没有修改i

for(i = 6; i &lt; 12; i+2) 更改为:

for(i = 6; i < 12; i+=2)
                    ^^

【讨论】:

    【解决方案2】:

    您不要将值存储回i 这里for(i = 6; i &lt; 12; i+2) 这样做

    for(i = 6; i < 12; i=i+2)
    

    【讨论】:

      【解决方案3】:

      问题在于i + 2 是一个表达式,它没有修改用于循环终止条件的变量i。只需将其更改为 i += 2 即可将 i 增加 2。

      【讨论】:

      • 谢谢。这是一个愚蠢的错误:)
      猜你喜欢
      • 1970-01-01
      • 2021-12-31
      • 1970-01-01
      • 1970-01-01
      • 2015-12-08
      • 1970-01-01
      • 2017-05-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多