执行语句for(k=3;++k<5;++k)++k;後,变量k的值是?
答案是7。以下是我的思路:第一次执行++k<5,k=4,条件为真,执行++k,此时k=5。之後返回到++k,k=6。在回到判断条件++k<5,此时k=7。条件不成立输出k...
答案是7。以下是我的思路:第一次执行++k<5,k=4,条件为真,执行++k,此时k=5。之後返回到++k,k=6。在回到判断条件++k<5,此时k=7。条件不成立输出k=7。
不知道这种思路正不正确。求高手 展开
不知道这种思路正不正确。求高手 展开
2个回答
展开全部
由于都是同一个++k 我标注出①②③,楼主说的如果跟我表达的一致就是正确的(我怕误解原话)
for(k=3;++k①<5;++k②)++k③;
首先执行① k=4 返回真;
执行③ k=5;
然后执行② k=6;
再次判断 执行① k=7 返回假,跳出for
在②里面for(;;i++)和for(;;++i)功能完全一样,没有任何区别,i++与++i只有在表达式(包括逗号表达式、赋值表达式)中才有区别,在独立的语句(分号分隔)中没有任何区别
注明:这个说明适用在c++,但在很多新式编译器里面不一定完全相同(有的编译器在同等优先级的语句会同时做)所以如果试卷解题这样算ok,但实际使用上考虑多种因素,尽量不要这样混合用++k,k++的写法
for(k=3;++k①<5;++k②)++k③;
首先执行① k=4 返回真;
执行③ k=5;
然后执行② k=6;
再次判断 执行① k=7 返回假,跳出for
在②里面for(;;i++)和for(;;++i)功能完全一样,没有任何区别,i++与++i只有在表达式(包括逗号表达式、赋值表达式)中才有区别,在独立的语句(分号分隔)中没有任何区别
注明:这个说明适用在c++,但在很多新式编译器里面不一定完全相同(有的编译器在同等优先级的语句会同时做)所以如果试卷解题这样算ok,但实际使用上考虑多种因素,尽量不要这样混合用++k,k++的写法
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询