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

一、问题

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

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

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

二、解答

这其实是空语句的问题。

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

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

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

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

三、总结

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

相关推荐
LDR00614 小时前
Type-C 快充全面升级!LDR6601 赋能个人护理便携电机,重塑剃须刀 / 理发器新体验
c语言·开发语言
雪碧聊技术14 小时前
Tree.js是什么?一文讲透
开发语言·javascript·ecmascript
码云数智-园园14 小时前
C++20 Modules 模块详解
java·开发语言·spring
swordbob15 小时前
NIO的channel中什么是 fd(File Descriptor,文件描述符)
java·开发语言·nio
源分享15 小时前
Java线程同步的多种实现方法(非常详细)
java·开发语言·jvm
Luminous.15 小时前
C语言--day30
c语言·开发语言
玖玥拾15 小时前
C/C++ 数据结构(七)栈、容器适配器
c语言·数据结构·c++··容器适配器
何以解忧,唯有..15 小时前
Go语言循环语句详解:for、range与循环控制
开发语言·算法·golang
謓泽16 小时前
C语言不是语法,是通往机器的地图。
c语言·开发语言
云水一下16 小时前
从零开始学 PHP 系列(一):PHP 的前世今生与开发环境搭建
开发语言·php