问题阐述
一般来说,if和 else语句本身后面不能写分号,但也不是绝对的,请看下例。
这个程序 if后面有个分号,这个程序有错误吗?
专家解答
这其实是空语句的问题。空语句是不执行任何操作的语句。空语句本身是一条语句,语句体内容为空,功能为空。作为语句,其后面要有一个分号,也就是一个空白分号就是一个空语句。
空语句用在程序中从语法格式上来说需要一条语句,但这条语句没有实际功能。程序中没必要出现空语句,如“问题阐述”的例子中,输入三角形边长,如果不能构成三角形,则重新输入边长。
空语句一般出现在选择结构 if后,表示条件成立什么也不执行,不成立执行 else下的操作。这时如果条件简单,可以直接写出相对于 else的条件去构造程序,只有条件比较复杂,写成相对条件更难于理解,才写成这种空语句。
空语句也可能出现在循环 while后。循环体要执行的功能在循环条件中都已经执行完毕,并且没有可再执行的语句,如果什么也不写,就会导致下一条语句变成循环体,这时用空语句表示。
专家点评
空语句并不常用,它的作用不是不可替代的,所有使用空语句的程序,都可以改成没有空语句的程序。