C语言:while后接分号“;”与不接分号“;”的区别
注意:本文讨论的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后接分号“;”与不接分号“;”的区别相关推荐
- 在纸上写好一个c语言程序后,上机运行的基本步骤为,c基本概念(选择题).docx
PAGE / NUMPAGES 一.单选题 1.下面叙述中正确的是: (A) 在C语言程序中,main()函数必须放在程序的开始位置 (B) 在C语言程序中,要调用的函数必须在main()函数中定义 ...
- ubuntu16.04在英文状态下安装中文语言包的过程(法一:图形界面的方式) 以及 安装中文语言包后无法选择汉语问题的解决
ubuntu16.04在英文状态下安装中文语言包的过程(法一:图形界面的方式) 以及 安装中文语言包后无法选择汉语问题的解决 参考文章: (1)ubuntu16.04在英文状态下安装中文语言包的过程( ...
- AngularJS 国际化 支持记录语言刷新后语言不变
AngularJS 国际化 支持记录语言刷新后语言不变 <!DOCTYPE html> <html ng-app='app'> <head><meta cha ...
- 关于计算机二级考试c语言的心得,计算机等级考试二级C语言考后心得
我是非计算机专业的一名学生,今年四月考了计算机二级,一出考场信心十足(笔试百分之七八的题型都有做过而且都有掌握过),成绩还没出来,但是我大概估算了下笔试80分应该没问题机试70分稳拿.现在我说下我考试 ...
- 易语言:本模块使用模块加固保护,安装易语言助手后即可正常使用,调用精易VIP模块后运行报错
发现不可识别的[程序加固段],其数据已被跳过! 且在易语言开发工具输出框中显示: 本模块使用模块加固保护,请安装易语言助手后启用模块守护插件即可正常使用. 1.安装易语言助手 地址:https://w ...
- android 系统语言改变广播,关于android语言切换后通知栏显示的问题
之前在移动UIUE项目中发现一个问题: 改变android语言设置,但是状态栏的快捷功能显示文字不会立即发生改变. 同样,下拉通知栏的文字显示在切换语言后也不会同步更新. 于是在项目中引入: @Sdk ...
- 补充switch语句的内容和逗号运算符(C语言case后没有break的switch语句,会继续执行后面的语句再退出)
补充switch语句的内容和逗号运算符 C语言case后没有break的switch语句,会继续执行后面的语句再退出 补充逗号运算符 C语言case后没有break的switch语句,会继续执行后面的 ...
- 【开发工具】解决SVN安装语言包后无法选择中文的问题
推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875 解决方案一 TortoiseSVN_1.8.8安装后无法选择简体中文,或者安 ...
- 探索C语言之字符串分割函数:strtok和strsep的区别
探索C语言之字符串分割函数:strtok和strsep的区别 概述 strsep - extract token from string(linux 下) strtok, strtok_r - ext ...
- c语言break后要分号吗,C语言程序每行结尾处都必须加分号(;)作为结束符号。
_ Homologous chromosome pair in synapsis. 冶炼时消耗能量越多的金属越不易腐蚀 机油"0W-20"是指多少度时的粘度,数字越大代表粘度越高, ...
最新文章
- 借助Docker单机秒开数十万TCP连接
- 别在Java代码里乱打日志了,这才是正确的打日志姿势!
- 深度学习(五十三)对抗网络
- linux启动tomcat并查看启动日志
- Spring2.5事务配置的5种方法
- 网站服务器系统组成,linux系统由哪几部分组成_网站服务器运行维护,linux
- python 空列表对象的布尔值_python – 从TensorFlow对象中检索数据 – 来自correct_prediction的布尔值列表...
- 为什么:要嫁就嫁程序猿
- BZOJ2732[HNOI2012] 射箭
- 凤凰项目:一个IT运维的传奇故事--阅读心得
- 软件开发项目计划书编写说明
- 进销存web源码 php,PHP网络版进销存源码WEB进销存源码
- 教材推荐 PRML_模式识别与机器学习
- Arduino 开发 — Arduino 函数库
- STM32采集电流互感器(电流互感器模块)数据
- “黑盒工坊”,轻松管理《魔兽世界》插件!
- Python float()函数
- Raven2靶机练习
- Java+selenium简单实现web自动化测试
- TaskSnapshot保存应用画面截图快照的处理过程