一道简单的C++问题
#include<iostream>usingnamespacestd;voidmain(){intn=0,k=0;while(k++&&n++>2);cout<<k<<...
#include <iostream>
using namespace std;
void main()
{int n=0,k=0;
while(k++&&n++>2);
cout<<k<<','<<n;
}
while(k++&&n++>2);这句话怎么理解 展开
using namespace std;
void main()
{int n=0,k=0;
while(k++&&n++>2);
cout<<k<<','<<n;
}
while(k++&&n++>2);这句话怎么理解 展开
5个回答
展开全部
当两个条件均成立时,while 循环执行某些操作,但因为 while后有分号,故循环体为空直接进入下次条件的判断。
条件由 两部分构成,根据运算的左结合性,先运算第一个表达式,k++ ,而第一个表达式由两个操作构成, 判断 k 是否非0,k自增1,因为 ++ 在后,故先判断是否非 0 再增 1,而判断结果是 0 ,假,故 k 增 1 变为 1 之后,&& 后的另外一个表达式 n++>2 就无需运算了,因为只要有一个假整个表达式就是假。
所以结果为 1 , 0
条件由 两部分构成,根据运算的左结合性,先运算第一个表达式,k++ ,而第一个表达式由两个操作构成, 判断 k 是否非0,k自增1,因为 ++ 在后,故先判断是否非 0 再增 1,而判断结果是 0 ,假,故 k 增 1 变为 1 之后,&& 后的另外一个表达式 n++>2 就无需运算了,因为只要有一个假整个表达式就是假。
所以结果为 1 , 0
展开全部
1.判断是否k不是0并且n>2
2.把k和n都加1
3.如果1成立,走到1
2.把k和n都加1
3.如果1成立,走到1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
就是两个条件,当同时成立时,进入循环
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
while循环目的是改变k和n的值, 因为n++>2 不满足,所以while不循环直接跳出,得到k=1 n=1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
此句毫无意义。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询