语言的复合语句
复合语句有时被称为块语句,在编程语言世界占据重要的作用。最早Algol 60提出复合语句概念,直接影响了后面几乎所有编程语言。
- 为了支持一种条件下多条语句的执行,编程语言引入了”复合语句”。
- 思想很简单,对于一般情况下单条语句进行扩展,用大括号包裹{ }多条语句,就是复合语句。
- 复合语句被编译器当做是”单条语句”。
- if (…) { … … }
- do {… …} while(..)
- 举个例子,老爸让儿子去买包子,老爸认为这是一件事情,对儿子而言,分成"确定包子店位置"、"拿钱"、"买包子"三件事情,本质上,一样的。
函数和类定义也算复合语句
在函数中可以声明和定义变量,包含多条执行语句,概念上和复合语句类似。事实上,二者在复合语句的概念上几乎没有区别。类定义,用{}包起来,也是复合语句的一种。
隐藏信息
复合语句可以定义自己的变量,是子级,可能和父级变量冲突。这里就有优先级概念,一般是子级覆盖父级。在某些场景额外有用。
- 一些c90标准的C编译器不允许变量声明或定义放在表达式语句之后,会逼迫程序员将变量放在开头,这很麻烦,可以用复合语句包起来,简单易用。注意,正式代码要酌情考虑写法是否易读。
复合语句初始化
复合语句并不能直接用于变量初始化,但它配合括号()可以达到此效果。例如:
- C语言int a = ({ int a = 1; int b = 2; a + b - 3; })结果a为0,但Java/C#不支持这种初始化形式。
微风不燥,阳光正好,你就像风一样经过这里,愿你停留的片刻温暖舒心。
我是程序员小迷(致力于C、C++、Java、Kotlin、Android、iOS、Shell、JavaScript、TypeScript、Python等编程技术的技巧经验分享),若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢,您的支持是我们为您提供帮助的最大动力。
欢迎关注。助您在编程路上越走越好!