#include<stdio.h>
int main()
{
for(5;2;2) printf("Hello");
return 0;
}
我正在尝试学习C。我遇到了这个for循环。编译此代码时,出现错误“不可约表达式树”。 我知道的for循环看起来像这样
for(i=0;i<n;i++)
首先分配值,然后检查条件,然后更改初始值。
答案 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始终为真。