循环判定闰年的程序_C的探查之路04-循环

while语句

while(表达式)
  语句

while(i<n)
  i = i * 2;

执行while时,先计算表达式的值,如果值不为零也就是所谓的真值,那么执行循环体,接着再次判定表达式。这个过程持续到表达式的值变成为零为止。

i = 1;
while (i<n)
 i = i * 2;

假设n的值是10,跟踪执行情况:

i = 1; i现在是1;
i < n成立吗? 成立就继续。
i = i * 2; i现在是2。
i < n 成立吗?成立继续。
i = i * 2; i现在是4。
i < n 成立吗?成立继续。
i = i * 2; i现在是8。
i < n 成立吗?成立继续。
i = i * 2; i现在是16。
i < n 成立吗?不成立,退出循环。

所以只有表达式i < n为真的情况下循环才会继续,当表达式为假的时候,循环终止。

如果表达式值始终为零,while语句无法终止

while(1)
 语句

do语句

do和while关系紧密,只不过表达式是在每次执行完循环之后判断

do 
 语句
while(表达式)

跟while语句一样,do循环必须也是一条语句,你也可以用多条复合语句,加{}就可以。

倒计时例子
i = 10;
do{
  printf("%d",i);
  --i;
}while(i>0);

执行do的时候,先执行循环,输出i,接着对i>0进行判定
然后判定成功再次执行循环体,直到i>0判定为假为止。

for语句

for(表达式1;表达式2;表达式3)
  语句

其中1、2、3都是表达式。

for(i = 10;i > 0; i--)
  printf("%d",i);

执行for时,i初始化为10,接着判定i>0,如果为真,执行printf语句,接着i进行自减,直到i>0判定为假。

for 循环的控制流

for ( init; condition; increment )
{
   statement(s);
}
  1. init 会首先被执行,且只会执行一次。这一步允许您声明并初始化任何循环控制变量。您也可以不在这里写任何语句,只要有一个分号出现即可。
  2. 接下来,会判断 condition。如果为真,则执行循环主体。如果为假,则不执行循环主体,且控制流会跳转到紧接着 for 循环的下一条语句。
  3. 在执行完 for 循环主体后,控制流会跳回上面的 increment 语句。该语句允许您更新循环控制变量。该语句可以留空,只要在条件后有一个分号出现即可。
  4. 条件再次被判断。如果为真,则执行循环,这个过程会不断重复(循环主体,然后增加步值,再然后重新判断条件)。在条件变为假时,for 循环终止。

goto语句

break语句和continue语句都是跳转语句,都是控制从程序的一个位置转移到另一个位置。

while(...){
   switch(...){
     goto label;
       ...
}
}
label: statement;

dccf7d0e20f380a2e1d3d2a50e30907f.png

ab5982b423ffcb45d22599a4b826416f.png
流程图
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值