[阿里巴巴2015研发工程师B] for语句的执行

设 m 和 n 都是 int 类型,那么以下 for 循环语句,__

for(m=0,n=-1;n=0;m++,n++)
    n
++;

A.循环体一次也不执行
B.循环体执行一次
C.是无限循环
D.有限次循环
E.循环结束判断条件不合法
F.运行出错

感谢您为本话题评分。
共有5个回答
  • 0
    Gonn - 2014-09-29 不喜欢

    这道题考的是对循环基础的理解。

    这里的代码会怎么执行呢?
    1. 初始化m=0,n=-1
    2. 循环条件n=0,发现为假,所以循环体一次也不会执行

    所以选A,循环体一次也不执行。

  • 0
    Gonn - 2014-09-29 不喜欢

    再扩展一下,比如将程序改成这样:

    for(m=0,n=-1; n=1; m++,n++) 
        n
    ++;

    执行情况又会如何呢?
    你觉得循环体会执行一次吗?那么你试下运行这段程序:

    #include <stdio.h>
    #include <unistd.h>
    int main()
    {
       
    int m, n;
       
    for(m=0,n=-1;n=1;m++,n++)
       
    {
            printf
    ("+\n");
            n
    ++;
       
    }
       
    return 0;
    }

    发现是无限循环了吧?
    因为循环条件为n=1,为真,所以无限循环。

    所以当条件 =0,=1这类东西,要注意,它很可能不仅仅是个数字,而是判断真假条件, = 1恒为真。
    这道题潜在也考你的真假问题。

  • 0
    更多的饼干 - 2014-11-19 不喜欢

    突然想起来有一次用while(0)来进入死循环。。结果一直进不去,最后被同学告知,除了0以外都可以死循环。。

  • 0
    Stone - 2015-02-05 不喜欢

    楼上hhhh,0在大部分(?)编程语言中不就是false的意思吗

  • 0
    HeartRiver - 2016-06-16 不喜欢

    循环条件的n=0;是赋值吧;
    程序会直接出错;

以下是预览效果,请确认排版好了再点回复。
如果你认为此话题有广告、灌水的嫌疑,请给此话题评一颗星。平均分低的话题将不会再显示。
良好的讨论氛围由大家共同维护。