C中的循环条件

时间:2018-09-06 05:05:20

标签: c for-loop

#include<stdio.h>
int main() 
{   
  for(5;2;2)    printf("Hello"); 
  return 0;
}

我正在尝试学习C。我遇到了这个for循环。编译此代码时,出现错误“不可约表达式树”。 我知道的for循环看起来像这样

        for(i=0;i<n;i++) 

首先分配值,然后检查条件,然后更改初始值。

3 个答案:

答案 0 :(得分:2)

正确的代码是这样的...

#include <stdio.h> //including the library
// Main Function 
int main(){

    int i; // Declaring the variable

    // i = 0 Initializing variable i
    // i < 5, so if i >= 5 it will not execute the for loop
    // i ++, increment the variable i by 1 for every loop

    for(i = 0; i < 5; i++){
        printf("Hello");
    }
}

在您的代码中,您没有声明任何变量并放入了一些未知的东西。编译器将其一如既往地为真,并无限执行printf("Hello");

答案 1 :(得分:1)

这会生成一个无限的for循环,因为for循环的检查条件始终为非零或True

for(5;2;2) //the checking condition is always 2 which is non-zero or true in other sense

语句条件检查在第一个分号(;)之后的括号内。在您的情况下,只有2被视为True

输出

HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHell......

答案 2 :(得分:0)

for循环的结构为:

for(init; cond; incdec)

如果cond是非零的常数,则循环无限执行。 拥有数字2会得出cond始终为真。