全部问题 > 当前问题

本题中的continue与课上老师讲的功能有出入?疑惑~

 do{
    if((k%2)!=0) continue;
    s+=k; k++;
  }while(k>10);
  printf("s=%d\n",s);

continue的功能不是“跳出此次循环,进入下一次循环”吗?!。。。本题中,程序运行到continue这里不就应该停止向下循环,而重新又从do循环的if重新开始吗?!。。。而且这样一来就是一个永远跳不出的,无限重复if的死循环了,,,可能我是对课上老师讲的理解错了,。。应该怎么理解呢?


清华小生 2016-3-21 15:10:24

共 1 个回答

矜持不失淡雅的少年、 2016-3-23 13:34:56

do里边的是循环体,while里边的才是循环条件,当k=1时直接就退出循环了。

问题来自: break和continue
以下程序的输出结果是 __【9】__ 。
#include <stdio.h>
main()
{ int k=1, s=0;
  do{
    if((k%2)!=0) continue;
    s+=k; k++;
  }while(k>10);
  printf("s=%d\n",s);
}
A. s=0
B. s=1
C. s=45
D. s=55
答案:A
解析:k=1,k%2!=0为真,continue,跳出本次循环,进入下次循环。k&gt;10为假,退出循环。因此答案为s=0。