C语言——if语句后⾯⼀定不能写分号吗?

一、问题

⼀般来说,让和 else 语句本身后⾯不能写分号,但也不是绝对的,请看下例。

cpp 复制代码
if (a + b > c && b + c > a && c + a > b);
else printf("重新输⼊三⻆形边⻓");

这个程序迁后⾯有个分号,这个程序有错误吗?

二、解答

这其实是空语句的问题。

空语句是不执⾏任何操作的语句。空语句本身是⼀条语句,语句体内容为空,功能为空。作为语句,其后⾯要有⼀个分号,也就是⼀个空⽩分号就是⼀个空语句。

空语句⽤在程序中从语法格式上来说需要⼀条语句,但这条语句没有实际功能。程序中没必要出现空语句,如例⼦中,输⼊三角形边长,如果不能构成三角形,则重新输⼊边长。

空语句⼀般出现在选择结构让后,表⽰条件成⽴什么也不执⾏,不成⽴执⾏ else 下的 操作。这时如果条件简单,可以直接写出相对于 else 的条件去构造程序,只有条件⽐较复杂,写成相对条件更难于理解,才写成这种空语句。

空语句也可能出现在循环 while 后。循环体要执⾏的功能在循环条件中都已经执⾏完毕,并且没有可再执⾏的语句,如果什么也不写,就会导致下⼀条语句变成循环体,这时⽤空语句表示。

三、总结

空语句并不常⽤,它的作⽤不是不可替代的,所有使⽤空语句的程序,都可以改成没有空语句的程序。

相关推荐
先知后行。16 分钟前
QT音视频
开发语言·qt·音视频
二向箔reverse30 分钟前
人脸特征可视化进阶:用 dlib+OpenCV 绘制面部轮廓与器官凸包
开发语言·python
寒月霜华36 分钟前
java-File
java·开发语言
jianqiang.xue39 分钟前
ESP32-S3 入门教程:从环境搭建到物联网应用实战
c语言·单片机·嵌入式硬件·物联网·青少年编程·51单片机·嵌入式
会开花的二叉树1 小时前
上手 cpp-httplib:轻量级 C++ HTTP 库的安装与实战指南
开发语言·c++·http
周杰伦fans1 小时前
C# 集合框架完全指南:从IEnumerable到ObservableCollection的深度解析
开发语言·c#
秦禹辰1 小时前
开源多场景问答社区论坛Apache Answer本地部署并发布至公网使用
开发语言·后端·golang
Su^!-苏释州1 小时前
Windows配置C/C++环境:MinGW+Vscode
c语言·c++·windows·vscode·大一新生学c语言
im_AMBER1 小时前
c回顾 03
c语言·学习
代码村新手1 小时前
C语言-指针
c语言·开发语言·jvm