注意:本文讨论的while后接分号“;”与否的区别,是针对while循环,因为do……while循环中while 后面的分号必须要有且千万不能省略,否则编译会报错。

while 循环的格式是:
while (循环条件)
{
    循环体;
}

1、while(循环条件)后不带分号“;”时:
当循环条件为真(非0)时, 不断执行循环体语句。直到循环条件为假(0)时,就跳出循环,执行while循环后面的语句。例:利用while循环计算 1+2+3+4+…+9 之和

#include <stdio.h>
int main(void)
{int i = 10;int sum = 0;while (i--)      // 没有分号“;”{sum = sum + i;}printf("sum = %d\n", sum); return 0;
}

执行结果:sum = 45
符合预期。

2、while(循环条件)后带有分号“;”时:
while(循环条件)与其后面的分号“;”成为了一个整体。
当循环条件为真(非0)时, 不会执行循环体语句。直到循环条件为假(0)时,才会执行循环体语句(执行一遍),然后继续执行后面的语句。例:利用while循环计算 1+2+3+4+…+9 之和

#include <stdio.h>
int main(void)
{int i = 10;int sum = 0;while (i--);     // 有分号“;”{sum = sum + i;}printf("sum = %d\n", sum);return 0;
}

执行结果:sum = -1
不符合预期。

3、总结
虽然while循环中while后面加了分号“;”不会出现编译出错,但是它已经不是while循环了,理解也变了,执行结果因此就不同了。
所以,while循环中while后面没有分号“;”(do……while循环中while后面才有分号“;”)。

C语言:while后接分号“;”与不接分号“;”的区别相关推荐

  1. 在纸上写好一个c语言程序后,上机运行的基本步骤为,c基本概念(选择题).docx

    PAGE / NUMPAGES 一.单选题 1.下面叙述中正确的是: (A) 在C语言程序中,main()函数必须放在程序的开始位置 (B) 在C语言程序中,要调用的函数必须在main()函数中定义 ...

  2. ubuntu16.04在英文状态下安装中文语言包的过程(法一:图形界面的方式) 以及 安装中文语言包后无法选择汉语问题的解决

    ubuntu16.04在英文状态下安装中文语言包的过程(法一:图形界面的方式) 以及 安装中文语言包后无法选择汉语问题的解决 参考文章: (1)ubuntu16.04在英文状态下安装中文语言包的过程( ...

  3. AngularJS 国际化 支持记录语言刷新后语言不变

    AngularJS 国际化 支持记录语言刷新后语言不变 <!DOCTYPE html> <html ng-app='app'> <head><meta cha ...

  4. 关于计算机二级考试c语言的心得,计算机等级考试二级C语言考后心得

    我是非计算机专业的一名学生,今年四月考了计算机二级,一出考场信心十足(笔试百分之七八的题型都有做过而且都有掌握过),成绩还没出来,但是我大概估算了下笔试80分应该没问题机试70分稳拿.现在我说下我考试 ...

  5. 易语言:本模块使用模块加固保护,安装易语言助手后即可正常使用,调用精易VIP模块后运行报错

    发现不可识别的[程序加固段],其数据已被跳过! 且在易语言开发工具输出框中显示: 本模块使用模块加固保护,请安装易语言助手后启用模块守护插件即可正常使用. 1.安装易语言助手 地址:https://w ...

  6. android 系统语言改变广播,关于android语言切换后通知栏显示的问题

    之前在移动UIUE项目中发现一个问题: 改变android语言设置,但是状态栏的快捷功能显示文字不会立即发生改变. 同样,下拉通知栏的文字显示在切换语言后也不会同步更新. 于是在项目中引入: @Sdk ...

  7. 补充switch语句的内容和逗号运算符(C语言case后没有break的switch语句,会继续执行后面的语句再退出)

    补充switch语句的内容和逗号运算符 C语言case后没有break的switch语句,会继续执行后面的语句再退出 补充逗号运算符 C语言case后没有break的switch语句,会继续执行后面的 ...

  8. 【开发工具】解决SVN安装语言包后无法选择中文的问题

    推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875 解决方案一 TortoiseSVN_1.8.8安装后无法选择简体中文,或者安 ...

  9. 探索C语言之字符串分割函数:strtok和strsep的区别

    探索C语言之字符串分割函数:strtok和strsep的区别 概述 strsep - extract token from string(linux 下) strtok, strtok_r - ext ...

  10. c语言break后要分号吗,C语言程序每行结尾处都必须加分号(;)作为结束符号。

    _ Homologous chromosome pair in synapsis. 冶炼时消耗能量越多的金属越不易腐蚀 机油"0W-20"是指多少度时的粘度,数字越大代表粘度越高, ...

最新文章

  1. 借助Docker单机秒开数十万TCP连接
  2. 别在Java代码里乱打日志了,这才是正确的打日志姿势!
  3. 深度学习(五十三)对抗网络
  4. linux启动tomcat并查看启动日志
  5. Spring2.5事务配置的5种方法
  6. 网站服务器系统组成,linux系统由哪几部分组成_网站服务器运行维护,linux
  7. python 空列表对象的布尔值_python – 从TensorFlow对象中检索数据 – 来自correct_prediction的布尔值列表...
  8. 为什么:要嫁就嫁程序猿
  9. BZOJ2732[HNOI2012] 射箭
  10. 凤凰项目:一个IT运维的传奇故事--阅读心得
  11. 软件开发项目计划书编写说明
  12. 进销存web源码 php,PHP网络版进销存源码WEB进销存源码
  13. 教材推荐 PRML_模式识别与机器学习
  14. Arduino 开发 — Arduino 函数库
  15. STM32采集电流互感器(电流互感器模块)数据
  16. “黑盒工坊”,轻松管理《魔兽世界》插件!
  17. Python float()函数
  18. Raven2靶机练习
  19. Java+selenium简单实现web自动化测试
  20. TaskSnapshot保存应用画面截图快照的处理过程

热门文章

  1. Linux查看文件的命令
  2. 关于windows桌面网络图标显示未连接却可以上网的情况
  3. 操作系统——并发相关问题
  4. 观李永乐老师《双蛋问题》解题后感
  5. rust哪个护甲高_《废土2》全部武器护甲资料及代码
  6. 一款基于企业微信的固定资产管理软件
  7. 用Python去京东抢90-40话费券,看到结果我惊呆了!
  8. Dirichlet Multinomial Mixtures (DMM)的R实现
  9. XPS如何在线转Word格式
  10. 调试设置移动端Web开发环境搭建实践