C语言 for无限循环
#include<stdio.h>voidmain(){inti,k;for(k=-1;k=1;k++)/*无限循环,因为K=1是赋值语句,那么改成k==1为什么还是没有...
#include<stdio.h>
void main()
{int i,k;
for(k=-1;k=1;k++) /*无限循环,因为K=1是赋值语句,那么改成k==1为什么还是没有值?还是我理解错了。*/
printf("*****\n");
} 展开
void main()
{int i,k;
for(k=-1;k=1;k++) /*无限循环,因为K=1是赋值语句,那么改成k==1为什么还是没有值?还是我理解错了。*/
printf("*****\n");
} 展开
展开全部
for 的第二个参数是循环条件
k=1是赋值语句 因为K为INT类型 1符合条件 赋值成功 返回true 所以条件一直为真陷入无限loop
K==1 显然for运行时K的值为-1 不符合条件所以直接跳过for语句
pritf(????) 这句在FOR下面 当for语句没有{} 花括号 则FOR语句把下面最近的一句语句 当做循环体语句
因为for条件不成立所以 不输出
k=1是赋值语句 因为K为INT类型 1符合条件 赋值成功 返回true 所以条件一直为真陷入无限loop
K==1 显然for运行时K的值为-1 不符合条件所以直接跳过for语句
pritf(????) 这句在FOR下面 当for语句没有{} 花括号 则FOR语句把下面最近的一句语句 当做循环体语句
因为for条件不成立所以 不输出
更多追问追答
追问
那么把K赋值为0呢?for(k=-1;k=0;k++) 这算是一种特殊情况么?
追答
0一样的 int a=0 请问成立吗? 结果当然是成立的 只要赋值 不超过INT 能包含的范围都是返回TRUE的
展开全部
k=1是赋值语句,对于判断条件来说是值永远都是1,也就是说for(k=-1;k=1;k++) 还是无限循环。
你把改成for(k=-1;k==1;k++)就没问题了。
你把改成for(k=-1;k==1;k++)就没问题了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
for循环第二个分号前放的是循环条件,它的值是一个逻辑型,你不论k=1还是k==1最后看的是这条语句是为0还是为1;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个简单
for(i=0;i==2;i=i+0);
这就实现了无限循环
for(i=0;i==2;i=i+0);
这就实现了无限循环
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询