关于3-3编程练习中C在循环体外的rsq打印结果

关于3-3编程练习中C在循环体外的rsq打印结果

源码

int a = 3;

        int b = 8;

        int c = 0;

        

        while(b > a){

            int c = b-a;

            NSLog(@"c=%d",c);

            a++;

        }

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

输出结果

2017-06-25 23:36:56.019502+0800 运算类型[1794:22270] c=5

2017-06-25 23:36:56.019997+0800 运算类型[1794:22270] c=4

2017-06-25 23:36:56.020037+0800 运算类型[1794:22270] c=3

2017-06-25 23:36:56.020098+0800 运算类型[1794:22270] c=2

2017-06-25 23:36:56.020133+0800 运算类型[1794:22270] c=1

2017-06-25 23:36:56.020152+0800 运算类型[1794:22270] a=8 b=8 c=0

Program ended with exit code: 0

问题:

怎么打印出:a=8 b=8 c=1

让循环外的C与循环内中最后计算出来的C输出的值一样?



正在回答 回答被采纳积分+1

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

3回答
Tender10 2017-06-26 10:30:29

你在外面给c赋初始值,当条件成立时,自然就会输出条件成立时c的值,如果条件不成立最终才会输出你赋值的初始值。你赋初始值只是给了最原始的值,条件成立自然就会覆盖原来的值。你写的代码是因为你定义了两个c变量,while循环中的c变量出了作用域就销毁了。我给你的代码while循环中并没有重新定义c变量,只在外面定义了一个全局的,这一点要分清楚。外面赋值并不影响最后的结果。

Tender10 2017-06-26 10:17:32

不成立那就在while循环外给c赋个初始值。

  • 提问者 天才杰 #1
    假设我无法断定while循环是否成立。如何在循环外赋初始值给c不会影响 while成立时输出的c的值?
    2017-06-26 10:26:04
Tender10 2017-06-26 10:02:33
 int a = 3,b = 8;
 int c;    
 while(b>a){
   c=b-a;
   NSLog(@"c=%d",c);
   a++;
 }
 NSLog(@"a=%d,b=%d,c=%d",a,b,c);

建议代码可以如上方式修改一下,即可得出对应的结果哦!

  • 提问者 天才杰 #1
    while条件不成立时,变量c的打印结果怎么控制?
    2017-06-26 10:13:27
  • 代代_代成龙 回复 提问者 天才杰 #2
    我刚才尝试啊,如果int c,然后直接打印c,那么c=0,所以当我们再while内从新定义c时,外面的c肯定是零,而当我们没有从新定义c,那么里面的c就是最后一次循环产生的1了,供参考。
    2017-12-12 15:20:45
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星

相似问题

登录后可查看更多问答,登录/注册

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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