关于while()里面进行判断或者赋值的问题

文章讨论了一个编程示例,其中while循环条件因误用等于号导致无限次执行。原本的条件`while(k=1)`实际上是将k赋值为1,然后检查是否为真,由于1是非零值,循环变为永真,因此循环会无限执行。作者起初误以为循环不会执行,后来认识到错误在于混淆了赋值运算符`=`与比较运算符`==`。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在程序段int k=0;while(k=1)k++;中,while循环执行的次数是( )。

A.无限次                      B.有语法错,不能执行          

C.一次也不执行                D.执行1次   

正确答案是A    

        本人一开始是认为选c ,因为k=0,是不满足k=1的。这里就出现了一个错误,把“==”和“=”搞混淆了。在while这个语句中,是先把k=1这个赋值语句执行了,再进行判断。当赋值语句执行了之后就变成了while(1)是永真语句。所以执行循环。在重新开始又再次赋值。所以是无限次。

 

          

while( k=0 )是把 k 赋值为 0,同时表达式的结果也是 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值