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

一、问题

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

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

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

二、解答

这其实是空语句的问题。

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

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

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

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

三、总结

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

相关推荐
Sylvia-girl6 分钟前
Java---IDEA
java·开发语言·intellij-idea
Z_W_H_12 分钟前
【Springboot】Bean解释
java·开发语言
L_autinue_Star1 小时前
手写vector容器:C++模板实战指南(从0到1掌握泛型编程)
java·c语言·开发语言·c++·学习·stl
元气小嘉2 小时前
前端技术小结
开发语言·前端·javascript·vue.js·人工智能
怀旧,2 小时前
【数据结构】8. 二叉树
c语言·数据结构·算法
励志的大鹰哥2 小时前
V少JS基础班之第七弹
开发语言·javascript·ecmascript
AI360labs_atyun2 小时前
Java在AI时代的演进与应用:一个务实的视角
java·开发语言·人工智能·科技·学习·ai
凤年徐3 小时前
【数据结构与算法】203.移除链表元素(LeetCode)图文详解
c语言·开发语言·数据结构·算法·leetcode·链表·刷题
学废了wuwu4 小时前
深度学习归一化方法维度参数详解(C/H/W/D完全解析)
c语言·人工智能·深度学习
nbsaas-boot4 小时前
多租户架构下的多线程处理实践指南
java·开发语言·spring