复合语句 / 编程语言 / 语句 · 2023年 10月 14日 0

复合语句

33 次浏览

复合语句有时被称为块语句,在编程语言世界占据重要的作用。最早Algol 60提出复合语句概念,直接影响了后面几乎所有编程语言。

  • 为了支持一种条件下多条语句的执行,编程语言引入了”复合语句”。
  • 思想很简单,对于一般情况下单条语句进行扩展,用大括号包裹{ }多条语句,就是复合语句。
  • 复合语句被编译器当做是”单条语句”。
    • if (…) { … … }
    • do {… …} while(..)
  • 举个例子,老爸让儿子去买包子,老爸认为这是一件事情,对儿子而言,分成"确定包子店位置"、"拿钱"、"买包子"三件事情,本质上,一样的。

函数和类定义也算复合语句

在函数中可以声明和定义变量,包含多条执行语句,概念上和复合语句类似。事实上,二者在复合语句的概念上几乎没有区别。类定义,用{}包起来,也是复合语句的一种。

隐藏信息

复合语句可以定义自己的变量,是子级,可能和父级变量冲突。这里就有优先级概念,一般是子级覆盖父级。在某些场景额外有用。

  • 一些c90标准的C编译器不允许变量声明或定义放在表达式语句之后,会逼迫程序员将变量放在开头,这很麻烦,可以用复合语句包起来,简单易用。注意,正式代码要酌情考虑写法是否易读。

复合语句初始化

复合语句并不能直接用于变量初始化,但它配合括号()可以达到此效果。例如:

  • C语言int a = ({ int a = 1; int b = 2; a + b - 3; })结果a为0,但Java/C#不支持这种初始化形式。