c语言for语句中的条件问题

#include<stdio.h>
void main()
{
int x,y;
for(x=0,y=0;x<5,y<5;x++,y++)//中间的这个条件是什么意思,是x成立y成立才成立还还是一个成立就是成立的?
;
printf("%d %d",x,y);
}

仔细看(1)(2)(3)(4)(5)这样,你应该能了解了吧。c语言中的for循环语句使用最为灵活,不仅可以用于循环次数已经确定的情况,而且可以用于循环次数不确定而只给出循环结束条件的情况,它完全可以代替while语句.
for(表达式 1;表达式 2;表达式 3)语句
它的执行过程如下:
(1)先求表达式 1.
(2)求表达式2,若其值为真(值为非0),则执行for语句中指定的内嵌语句,然后执行下面第三步 做若为假(值为0),则结束循环,转到第5步.
(3)求解表达式3
(4)转回上面第(2)步骤继续执行;
(5)结束循环,执行for语句下面的一个语句;
for(循环变量赋初值;循环条件;循环变量增值)语句

for(i=1;i<=100;i++)sum=sum+i;
它的执行相当于
i=1;
while(i<=100){
sum=sum+i;
i++;
}
显然,用for语句更简单、方便。
说明:
(1)for语句的一般形式中的"表达式1"可以省略,此时应在for语句之前给循环变量赋初值.注意省略表达式1时,其后的分号不能省略.如for(;i<=100;i++){....};
(2)如果表达式2省略 即不判断循环条件,循环无终止地循环下去,也就是认为表达式2始终为真.
例如:for(i=1;;i++){.....};
相当于i=1;
while(1)
{sum=sum+1; <br>i++; <br>}
(3)表达式3也可以省略,但此时程序设计者应另外设法保证循环能正常结束.如:
for(i=1;i<=100;)
{sum=sum+1; <br>i++; <br>}
这个例子的循环增量没有放在表达式三的位置 而是作为循环体的一部分 其效果是一样的.
(4)可以省略表达式1和表达式3,只有表达式2 即只给循环条件.
如for(;i<=100;)
{
sum=sum+i;
i++;
}
这个相当于
whlie(i<=100)
{
sum=sum+i;
i++;
}
(5)三个表达式都可以省略,如:
for(;;)语句
相当于
while(1)语句
即不设初值 不判断条件(认为表达式2为真值)循环变量不增值,无终止的执行循环体.
(6)表达式1也可以是设置循环变量初值的赋值表达式,也可以是与循环变量无关的其他表达式.如:
for(sum=0;i<=100;i++)
{
sum=sum+i;
}
for(sum=0,i=0;i<=100;i++)
{
sum=sum+i;
}
等等写法.
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-09-27
1、for是C语言中的一个关键字,主要用来控制循环语句的执行。
2、举例说明for语句的使用方法:
int i;
for(i=0; i<3; i++)
// i=0是初始化部分;i<3是循环判断条件部分(当满足此条件时才进入执行for循环中的语句);i++是执行完循环体语句后的操作
{
printf("HelloWorld");
}
// 上面的for语句就是控制输出3次HelloWorld
第2个回答  2013-09-05
y<5起作用用下面这个程序可以测试出来int main()
{
int x,y;
for(x=0,y=0;x<5,y<5;x++) {//中间的这个条件是什么意思,是x成立y成立才成立还还是一个成立就是成立的?
printf("x=%d & y=%d",x,y);
if (x == 20)
break;
}
return 0;
} 原理: int i = 1, 2;最后i的值是2;x<5 有一个值真或假 y<5 也有一个值真或假表达式 x<5, y<5的最后的值 是y<5的值
第3个回答  2013-09-05
x、y都成立时候,条件才成立,才能执行下面的循环语句
第4个回答  2013-09-05
XY的初始值都是0 XY不能超过5 循环1次X自加1 Y自加1
XY等于5了就跳出循环

C语言中for语句问题
在C语言中,对于for语句的理解不能简单地将其视为一个逗号运算符。例如,尝试将for语句看作z =(1+2,2+3)这样的形式,会导致错误的理解。在这样的表达中,假设z是5,这与for语句的真正用途不符。for语句在C语言中主要用于循环控制。其基本形式是for(initialization; condition; update)。初始化部...

C语言for语句问题?
for循环的执行逻辑是:执行初始化部分,这里就是 i = 0;判断条件是否满足,如果不满足条件,就直接跳出循环了,条件是 a[i] < s;执行for循环体,这里是空语句;执行变量更新,这里是 i++;跳转到第二部;其中,第二部跳出的时候,程序是直接跳转到第五步之后继续执行的,也就是说,i++ 是不...

c语言中for语句的用法及规则是什么?
c语言for循环语句用法为:for(表达式1;表达式2;表达式3),循环体。在for循环语句用法中,for是关键字。for之后的圆括号内一共有3个表达式,以分号隔开。一般情况下,表达式1的作用是赋初值;表达式2的作用是控制循环,即循环条件;表达式3的作用是修改循环变量的值,一般是赋值。循环体语句如果只有一...

c语言中for语句的用法及规则是什么?
c语言中for语句用法:for是C语言中的一个关键字,主要用来控制循环语句的执行。无论是循环1还是循环2,都是不会执行,因为你的a和b的初时值都是1,但是你的循环条件分别是a<0,b<0,因此循环都不会执行,把a<0和b<0;改成a<100和b<100。第2个for语句,前边有{}括号,编译都过不了,如果...

c语言中for循环执行结束条件是什么?
C语言 设i,j,k均为int型变量,则执行完下面的for循环后,k的值为10。for(i=0,j=10;i<=j;i++,j--) k=i+j;表示,i初始值为0,j初始值为10。判断i是否小于等于j。如果成立,则k为i+j,i为i+1,j为j-1。继续循环判断,直至,i大于j时,结束循环。因此,当i=5,...

C语言for循环 假如for循环有两个判断条件应该怎么进行判断 例如for...
其实这个是属于逗号表达式,而逗号表达式的值为最后一个的值,所以for(i=3,j=5;i<10,j>0;i++,j--)这个得判断条件应该以j>0为准

c语言中关于for循环的问题,急急急!!!
第一个的条件k=1;是个赋值表达式,表达式的值根据赋值的值而定,如果=右边是0,则表达式的值为0,否则为1,所以k=1的值恒为1,死循环,无限次 第二个的理由跟第一个一样,表达式k=0的值为0,所以一次都不运行 第三个是关系判断,如果k的值为0,k==0的值才为1,否则为0,第一次循环k=...

请问,在C语言中,FOR循环可不可以这么写 for(i=0, j=0 ; i<5, j<6...
for(i=0,j=0;i<5&&j<6;i++,j++) for语句中间那个条件不能用“,”要表示同时满足多个条件用&&,要表示满足其中任意一个条件用|| 逗号也可以,但逗号表达式的值就是最后一个部分的值,这样就相当于i<5是没有用的

C语言判断质数,for语句里一个条件看不懂?
首先,直接写i<n,是可以的,但是效率太低。假设,我输入的数n是100,那么显而易见,for循环需要做一百次,貌似没差哦,因为电脑的运行速度是很快的,可能几秒钟就做完100次for循环了。但是要是我输入的100000,十万呢?那么意味着,需要做10万次for循环,这个时候,计算机可能需要几十秒,感觉还是...

C语言for(i=0;i<n&&str[i];i++) p[i]=str[i];这个语句的循环条件是什...
C语言for(i=0;i<n&&str[i];i++) p[i]=str[i];这个语句的循环条件是什么意思?这段代码使用了for循环来将字符串str中的前n个字符复制到另一个字符数组p中。循环的条件是 i < n && str[i],即 i小于n且str[i]不为NULL(字符串以NULL作为结尾的标志)。其中,变量i表示当前循环到的...

相似回答