设j为int型变量,则下面for循环语句的执行结果是______________for(j=10;j>3;j--){ if (j%3) j--; --j; --j; printf("%d",j);}答案是:7、4(我好像转入了牛角尖,麻烦高人解救:j--到底是

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/02 09:42:33

设j为int型变量,则下面for循环语句的执行结果是______________for(j=10;j>3;j--){ if (j%3) j--; --j; --j; printf("%d",j);}答案是:7、4(我好像转入了牛角尖,麻烦高人解救:j--到底是
设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循环语句的执行结果是______________for(j=10;j>3;j--){ if (j%3) j--; --j; --j; printf("%d",j);}答案是:7、4(我好像转入了牛角尖,麻烦高人解救:j--到底是
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)的意思.