设j为int型变量,则下面for循环语句的执行结果是______________
for(j=10;j>3;j--)
{
if (j%3) j--;
--j;
--j;
printf(%d,j);
}
答案是:7、4
(我好像转入了牛角尖,麻烦高人解救:j--到底是如何运算的.详解!)
第一个j--,j先取出来也就是10,然后再自减1,就等于9.那么第2个j--是,j是等于先取出来的10,还是,真正自减运算后的9呢?这个始终搞晕~
设j为int型变量,则下面for循环语句的执行结果是--------------
答案:1 悬赏:80 手机版
解决时间 2021-08-22 18:12
- 提问者网友:夢醒日落
- 2021-08-22 06:51
最佳答案
- 五星知识达人网友:笑迎怀羞
- 2021-08-22 07:52
for(j=10;j>3;j--)
{
if (j%3) j--; //这句话是:只要j%3不等于0,j就减1
--j; //这句话是j减1
--j; //这句话是j减1
printf(%d,j); //输出j
}
首先,j=10;因为 j%3不等于0 ,所以执行if内的语句,j-1,此刻j=9;再往后,有两次j-1,于是j=7;然后输出
再然后,执行for语句内的j--,此刻j=6;
再进入循环.因为j%3等于0,所以不执行if内的语句,j依然等于6;然后两次j-1;j=4.然后输出4.
我觉得这个题目j--或则--j都可以互换,答案都一样.
主要是你没有理解if(j%3)的意思.
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯