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

一、问题

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

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

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

二、解答

这其实是空语句的问题。

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

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

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

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

三、总结

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

相关推荐
apcipot_rain15 分钟前
数据结构实验——排序算法的实现与分析
c语言·数据结构·算法·排序算法
扶我起来我还能再做一题18 分钟前
排序合集(一)
c语言
smart_ljh29 分钟前
JS设计模式之单例原型
开发语言·javascript·设计模式
kk努力学编程36 分钟前
Linux基础18-C语言篇之运算符Ⅰ【入门级】
linux·运维·c语言
ybq195133454311 小时前
javaEE-11.javaScript入门
开发语言·javascript·ecmascript
来恩10031 小时前
C# ASP.NET 介绍
开发语言·c#·asp.net
bestwinner2 小时前
java 集合取交集
java·开发语言
数据小小爬虫2 小时前
高效利用Python爬虫开发批量获取商品信息
开发语言·爬虫·python
韦慕霖2 小时前
C#语言的云计算
开发语言·后端·golang
为啥不吃肉捏3 小时前
《我在技术交流群算命》(三):QML的Button为什么有个蓝框去不掉啊(QtQuick.Controls由Qt5升级到Qt6的异常)
开发语言·c++·qt·开源