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

一、问题

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

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

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

二、解答

这其实是空语句的问题。

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

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

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

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

三、总结

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

相关推荐
良木林12 小时前
JS函数进阶
开发语言·前端·javascript
我不是板神13 小时前
秋招|MCU+RTOS技术栈——面试八股文整理3:STM32
c语言
Python大数据分析@14 小时前
Python 语言有什么奇技淫巧吗?
开发语言·python·c#
Envyᥫᩣ14 小时前
C#中的设计模式:构建更加优雅的代码
开发语言·c#
C灿灿数模14 小时前
2025全国大学生数学建模C题保姆级思路模型(持续更新):NIPT 的时点选择与胎儿的异常判定
c语言·开发语言·数学建模
白榆!14 小时前
string类的实现
开发语言·c++·算法
励志五个月成为嵌入式糕手14 小时前
0904 类的继承
开发语言·c++
励志不掉头发的内向程序员14 小时前
从零开始的python学习——列表
开发语言·python·学习
啊?啊?15 小时前
17 C 语言宏进阶必看:从宏替换避坑到宏函数用法,不定参数模拟实现一次搞定
c语言·预处理·文本替换
Hello.Reader16 小时前
一文通关 Proto3语法 + 风格的实战指南
java·开发语言·数据库