南昌餐厅网站建设,网站设计论文选题,网站功能模块清单,免费域名注册2023C中的无限循环
while、 do…while 和 for 循环都包含一个条件表达式#xff0c;在它为 false 时循环结束。如果您指定的条件总是为 true#xff0c;循环就不会结束。 无限 while 循环类似于下面这样#xff1a;
while(true) // while expression fixed to true
{DoSomethi…C中的无限循环
while、 do…while 和 for 循环都包含一个条件表达式在它为 false 时循环结束。如果您指定的条件总是为 true循环就不会结束。 无限 while 循环类似于下面这样
while(true) // while expression fixed to true
{DoSomethingRepeatedly;
}无限 do…while 循环类似于下面这样
do
{DoSomethingRepeatedly;
} while(true); // do… while expression never evaluates to false而无限 for 循环类似于下面这样
for (;;) // no condition supplied unending for
{DoSomethingRepeatedly;
}这种循环看似奇怪但确实有用武之地。假设操作系统需要不断检查 USB 端口是否连接了设备只要操作系统在运行这种活动就不应停止。在这种情况下就应使用永不结束的循环。这种循环也叫无限循环因为它们将不断执行下去直到永远。
小心分号
通过在 while 循环的第一行之后意外地放置一个分号也可以创建无限循环示例如下:
int count 1;
while (count 5) ; //该分号是一个错误
{cout Hello ;count count 1;
}因为编译器在发现开始语句块的大括号之前看见了第一行末尾的分号所以它会在分号的位置结束循环。尤其是它会将分号前面丢失的语句解释为空语句也就是什么都不做的语句然后将 while 语句和它后面的任何内容断开。
对于编译器来说整个循环看起来就像下面这样
while(count 5);这个 while 循环将持续执行空语句当然它永远不会执行任何操作。该程序似乎“陷入迷惘”因为没有任何屏幕输出也不会显示任何活动。
不要忘记大括号
在编写循环语句时如果有条件执行的语句是一个语句块则不要忘记将所有的语句都包含在一组大括号中。如果大括号意外被忽略则 while 语句有条件执行的仅仅是下一个语句请看下面的代码示例
int count 1;
//该循环忘记使用大括号
while (count 5)cout Hello ;count count 1;在这段代码中只有一个语句也就是 cout 语句是在 while 循环的主体中。给变量 count 加 1 的语句不在循环体内所以 count 的值保持为 1循环测试条件永远为 true。循环将一遍又一遍地打印“Hello”字符串直到用户停止程序。
不要混清 与
循环的另一个常见陷阱是在打算使用 运算符时却意外地使用了 运算符。例如以下示例就是一个无限循环因为作为循环条件的测试表达式每次都给 remainder 赋值为 1而不是测试 remainder 是否等于 1
while (remainder 1) //错误条件表达式为赋值语句
{cout Enter a number: ;cin num;remainder num % 2;
}请记住任何非零值都将被判断为 true。
除了外观形式do-while 循环和 while 循环之间的区别是 do-while 是一个后测试循环这意味着在循环结束时也就是在每次迭代完成后才测试其表达式。因此即使测试表达式在开始时为 falsedo-while 也至少要执行一次迭代。
例如在以下 while 循环中cout 语句根本不会执行
int x 1;
while (x 0)cout x endl;但是在以下 do-while 循环中的 cout 语句将执行一次因为 do-while 循环在迭代结束之前不会判断表达式 x0
int x 1;
docout x endl;
while (x 0);如果要确保循环执行至少一次则应使用 do-while 循环。
该文章会更新欢迎大家批评指正。
推荐一个零声学院的C服务器开发课程个人觉得老师讲得不错 分享给大家LinuxNginxZeroMQMySQLRedis fastdfsMongoDBZK流媒体CDNP2PK8SDocker TCP/IP协程DPDK等技术内容 点击立即学习C/C后台高级服务器课程