C语言,已定义K为int类型的10,为什么while(K=0)这个循环一次也不执行?

如题所述

首先赋值语句也会有返回值,赋值语句的返回值就是最终赋值。所以K=0,返回的就是0,那么while(K=0),就相当于是while(0),条件一直为假,所以不进循环。
我在想你是不是想写成while(K==0)?
温馨提示:内容为网友见解,仅供参考
第1个回答  2021-03-30
k=0赋值语句结果就是k的值0,所以判断false不执行。
是不是要的是这样的语句?while(k==0){k--;...;}
或者直接使用while(k--);又或者while(--k);

c语言: 以下 while 循环执行的次数是 k=0; while( k=10) k=k+1;
这是一个死循环,因为每次执行循环执行表达式K=10,其结果大于0。0次 k=10循环开始检查k=10,不满足k=0,不进入循环,一次! k=10; while(k=0) { k=k-1; } 才会执行10次! while循环没得大括号{,UuZTtQ。int k=0;while(k=1)k++;while循环执行的次数是 a、无限次 b、有语法错,不...

while 的用法 c语言
k是long int类型,所以k不能为小数 输入n 循环开始 k\/=10 即k=k\/10只要k满足long int 类型循环就继续

c语言中如何让while(1)下的一个程序在条件满足时(条件保持不变)只执...
while(1) \/\/while循环语句 1就是真(条件成立),0就是假(条件不成立) \/\/while(1) 永远都是真,如果内部没有跳出语句,那就是个死循环。 { \/\/car_in if(car_in==0) \/\/ if条件判断语句 (car_in=0,就是p1^0端口低电位时) { ms_delay(10); \/\/延时消抖 后...

c语言某个子函数中的while语句不能执行
for循环应该是这样的吧:for (int i = 0; i < n; i++){ P = (List *)malloc(k); scanf("%d", &P->data); S->next = P; S = P;}这样创建出来的链表包含一个不存任何数据的头结点,因此查找也要修改 if (P->next->data == item)其余没有什么问题 但有一种情...

C语言中 int k==0; do{++k;} while(k>=0); 为何不是死循环?
int 类型有个范围,加到最大值以后会变成负值

c语言while,if表达式的问题,请教高手!
if (value == 0)if (value != 0)不可模仿布尔变量的风格而写成 if (value) \/\/ 会让人误解 value 是布尔变量 if (!value)3.浮点变量与零值比较 不可将浮点变量用“==”或“!=”与任何数字比较 千万要留意,无论是float 还是double 类型的变量,都有精度限制。所以一定要避 免将浮点变量...

C语言为什么语句while(!x)和while(~x) 不等价?
!x和~x的计算规则不同,所以二者不能等价。用于while()条件时,当表达式结果为0,while退出,否则while继续循环。对于!x,只有当x为0时,表达式结果为真,while会继续循环;对于其它的值,!x的结果都是0,会退出循环。于是!x的真值就是 x = 0, !x=1 x!=0, !x=0 而对于~x,是按位取反...

C语言作业运行不出来,求指导
进入 while 循环体前,变量 t 的值为 1。循环过程中 t 的值没有改变,而循环条件是 t >= 0.0001,这个条件一直满足,所以程序不会跳出循环。程序一直卡在循环里面,自然不会执行到下面的 printf 函数。卡循环是没有运行结果的原因。实际上代码还存在其他问题,无法计算出正确的结果:[1] 变量 s...

下面程序段不是死循环的是?
++k;} while(k>=0);其实看似k会一直大于0,但你作为一名学计算机的朋友,一定要记住,任何一个数据类型是有位数限制,好似int在C语言里就固定为32位带符号的整数类型,范围是-2147483648~2147483647,当不断增加一时,超过了就会溢出,返回到负的尽头,你用个printf的语句运行一下,结果是有输出的,...

C\/C++ 关于while(cin) 的相关问题
break是退出while循环的意思。while(cin>>k)当输入值与k的类型不匹配时,不执行while中的语句,直接退出while。

相似回答