为了账号安全,请及时绑定邮箱和手机立即绑定

有点小问题不是很理解

for(i=9; i>=1; i++)

for(j=1; j<=1; j--)

这两个for语句分别是怎么运行的?  可以解释一下吗   i和j分别代表什么呢

正在回答

4 回答

for(i=9;i>=1;i--)   //i的初值为9,判断是否满足i>=1,满足即运行内部的程序,i++是内部程序执行完后做的
    {
       for(j=1;j<=i;j++)  /*可以先看成第一个for的内部程序,然后再把它当做一个for循环,单个的for循环你会吧*/
          {
              result=i*j; //i=9,j=1,得出相应的result
             printf("%d*%d=%d\t",i ,j,result); //输出9*1=9,j++,j=2,j<=i,条件满足,继续执行第二个for
          }
        printf("\n"); //第二个for的循环条件不满足即j>i时,循环结束,执行第一个for循环的换行命令
    }

第二个for循环嵌在第一个for循环里面,要第二个for循环执行好了,才能够i--,然后继续执行,这个时候i=8,for循环条件通过,执行第二个for循环,第二个for循环执行跳出以后,再执行i--,这样循环往复的执行。

第一次i=9

j=1时输出    9*1=9

j=2时输出    9*2=18

j=3时输出    9*3=27

j=4时输出    9*4=36

j=5时输出    9*5=45

j=6时输出    9*6=54

j=7时输出    9*7=63

j=8时输出    9*8=72

j=9时输出    9*9=81

当j=10时循环条件不满足,第二for循环结束,执行回车换行,i--

第二次 i=8

和上面的类似不过当j=9时循环条件j<=i不满足,循环结束,回车换行,i--

下面就是一样的道理,知道i=0不满足i>=1的循环条件,循环结束。

好啦,差不多就这样,希望没有把你绕糊涂

0 回复 有任何疑惑可以回复我~
#1

super珊__ 提问者

嘿嘿 非常感谢你 终于懂了
2015-11-16 回复 有任何疑惑可以回复我~
for(i=9;i>=1;i--)
    for(j=1;j<=i;j++)

觉得是这样的,第二个for套在第一个for里面,先执行第一个for,i=9;然后执行第二个for循环,第二个for循环条件不满足即j>i时跳出循环执行i--,此时i=8满足i>=1这个循环条件,再去执行第二个for循环,一直这样循环往复,直到i=0,无法满足循环条件时循环结束。你可以把第二个for当成第一个for的执行程序。就像for(i=0;i<10;i++){x=x+1;}一样的程序,第二个for就是{ }内的程序。

0 回复 有任何疑惑可以回复我~
#1

super珊__ 提问者

是不是i表示行 j表示列?
2015-11-15 回复 有任何疑惑可以回复我~
#2

super珊__ 提问者

不应该是执行第一个for的i=9赋初值 之后执行i>=1 再执行第二个for语句 可是到了第二个for语句我就不是很懂往下了 可以说得明白点吗
2015-11-15 回复 有任何疑惑可以回复我~

i的初始值为9,判断条件是i>.=1,执行完程序后i=i+1,不满足循环条件时跳出for循环,不过我觉得你写错了吧,这样下去一定是无限制循环了。下面那个也一样

0 回复 有任何疑惑可以回复我~
#1

super珊__ 提问者

其实我这个是99乘法表的 第二个for应该是 j<=i
2015-11-14 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C语言入门
  • 参与学习       926020    人
  • 解答问题       20793    个

C语言入门视频教程,带你进入编程世界的必修课-C语言

进入课程

有点小问题不是很理解

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信