再学C语言18:循环控制语句——while循环

3种基本的程序流:顺序、循环、分支

3种循环程序流:while、do while、for

伪代码(pseudocode):一种用简单的英语表示程序的方法,与计算机语言的形式相对应;伪代码有助于设计程序的逻辑

while循环的一般形式:

while(expression)
    statement

statement可以是一个带有分号的简单语句,也可以是花括号和其中的复合语句

如果expression为真(非零),就执行一次statement部分,然后再次判断expression,在expression变为假之前重复该判断和执行的循环,每次循环被称为一次迭代

一、while循环的终止

当构造一个while循环时,循环中必须包含能改变判断表达式的值使表达式的值最终为假,否则循环永远不会终止

例外:嵌入式开发中main函数中的while()循环实际上是一个死循环,是为了让程序一致运行而专门设计的

二、while循环何时终止

只有在计算判断条件的值时才决定是终止循环还是继续循环

示例代码:

#include <stdio.h>
int main(void)
{
    int num = 10;
    while(num < 11)
    {
        printf("the num is %d \n", num);
        num++; // num变为11,但是程序不会退出,而是继续执行完本次循环
        printf("the new num is %d \n", num);
    }
    return 0;
}

运行结果: 

94eb2d5dd56c452890e3f1ec611eb0ac.png

在循环中,即使进入循环的判断条件变得不满足,程序也不会马上退出,而是会执行完本次循环,在执行下一次判断时,才退出循环

三、while循环是使用入口条件的有条件循环

循环体中语句的执行需要依赖于判断表达式中的条件

在进入循环体之前必须满足该条件

只有位于判断条件之后的单个语句(简单语句或复合语句)才是循环的部分,不要忘了复合语句前后的花括号

while语句本身在语法上算作一个单独的语句,即使其使用了复合语句

常犯错误1:

#include<stdio.h>
int main(void)
{
    int i = 0;
    while(i < 10)
        function();
        i++; // 程序将一直在while循环中,永远不会执行到该行
    return 0;
}

常犯错误2:一个单独的分号也算是一个语句(空语句)

#include <stdio.h>
int main(void)
{
    int i = 0;
    while(i++ < 10); // 相当于循环内是空语句
        function(); // 该行语句只会被执行一次
    return 0;
}

为了防止空语句不被留意,建议放在单独的一行中,使开发者在阅读程序时更容易看到空语句:

while(i++ < 10)
    ; // null statement

当所有的工作都在判断过程中实现,会有意使用带有空语句的while语句,再比如:

// 只要scanf()读入一个整数,就返回1
// while中的判断条件满足,循环就会继续
while(scanf("%d", &num) == 1)
    ;

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Forster-C

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值