这两种代码方式有什么区别吗?

这两种代码方式有什么区别吗?

        for (a=1; a<=9; a++) {      

            for (b=1; b<=a; b++) {     

               NSLog(@"%d*%d=%d",a,b,a*b);             }         }

和 

       int a=1;      

       int b=1;  

       for (a; a<=9; a++) {   

          for (b; b<=a; b++) {        

              NSLog(@"%d*%d=%d",a,b,a*b);             }         }

有什么区别吗?

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

emmm.......眼镜没有戴对,失误失误。

且让我来修订一下:

第二段代码中,当第一次内层循环全部结束后,b的值变为2;当外层循环a=2,再次进入内层循环时,b由于是在最外层赋值为1了,所以不会再从b=1开始执行,直接从b=2作为循环初始数据。。。所以第二段只会打印出一部分。可以修订为:

int a;  
int b;        
for (a=1; a<=9; a++) {         
    for (b=1; b<=a; b++) {            
         NSLog(@"%d*%d=%d",a,b,a*b);
    }
}


  • 剑来来来 提问者 #1
    喔~~懂了懂了! 谢谢大佬,有你们在让我这种纯小白更安心了 嘻嘻( ´▽` )ノ
    2018-01-17 21:29:45
喜欢做梦的鱼 2018-01-17 18:01:48
for (int a=1; a<=9; a++) {                  
  for (int b=1; b<=a; b++) {

如果你的第一段代码改成如上,运行结果就是一致的。

当然,此时,a,b只能在循环中使用,而第二段的a,b,循环外也能使用。祝学习愉快!

  • 提问者 剑来来来 #1
    哇光速回复好开心! Em...但是我的第二段代码(和字后面那一段)是运行不出99乘法表的,只有乘法表的一部分。但我觉得理论上应该和第一段运行出的一样啊,我的第一段确实可以出99乘法表的
    2018-01-17 18:11:51
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
iOS入门:基础语法与常用控件
  • 参与学习       1337    人
  • 提交作业       712    份
  • 解答问题       1878    个

很多人都在疑问没有基础该怎么学习iOS开发?不用担心,本路径采用游戏关卡式的教学模式,并且以经典OC与最新Swift双重结合的教学内容,帮助大家快速掌握两种iOS开发语言基础,去掉“零”标签。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师