语言的复合语句

server/2024/11/12 7:44:35/
cle class="baidu_pl">
cle_content" class="article_content clearfix">
content_views" class="htmledit_views">

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

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

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

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

隐藏信息

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

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

复合语句初始化

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

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


微风不燥࿰c;阳光正好࿰c;你就像风一样经过这里࿰c;愿你停留的片刻温暖舒心。

c0389bf1">我是程序员小迷(致力于C、C++、Java、Kotlin、Android、iOS、Shell、JavaScript、TypeScript、Python等编程技术的技巧经验分享)࿰c;若作品对您有帮助࿰c;请关注、分享、点赞、收藏、在看、喜欢࿰c;您的支持是我们为您提供帮助的最大动力。

欢迎关注。助您在编程路上越走越好!

class="blog-extension-box">

http://www.ppmy.cn/server/120884.html

相关文章

使用c#制作一个小型桌面程序

封装dll 首先使用visual stdio 创建Dll新项目,然后属性管理器导入自己的工程属性表(如果没有可以参考visual stdio 如何配置opencv等其他环境) 创建完成后 系统会自动生成一些文件,其中 pch.cpp 先不要修改,pch.h中先导入自己需…

解决phpstudy无法启动MySQL服务

三种方法 如果说你在小皮里面,启动mysql,发现启动不了,而且你在你自己电脑本地有装过mysql服务,那么可以按照我下面的不走来,按顺序试验1,2,3,三个里面肯定有一个是可以解决的 1.停止本地的mysq…

Python知识点:如何使用Python进行算法交易

开篇,先说一个好消息,截止到2025年1月1日前,翻到文末找到我,赠送定制版的开题报告和任务书,先到先得!过期不候! 使用Python进行算法交易的完整指南 在当今快节奏的金融市场中,算法…

ADB ROOT开启流程

开启adb root 选项后,执行如下代码: packages/apps/Settings/src/com/android/settings/development/AdbRootPreferenceController.java mADBRootService new ADBRootService(); Override public boolean onPreferenceChange(Preference preference…

Git提交类型

说明:Git提交类型指的是代码commit时,写在comment前面的标志,表示此次commit的提交类型,如下: Git提交类型 常见的Git提交类型有: feat:新特性、新功能或优化; fix:修复…

react + antDesignPro 企业微信扫码登录

效果 实现步骤 1、项目中document.ejs文件引入企微js链接 注意&#xff1a;技术栈是使用的react antDesignPro&#xff0c;不同的技术栈有不同的入口文件&#xff08;如vue在html文件引入&#xff09; <script src"https://wwcdn.weixin.qq.com/node/wework/wwopen/j…

代码随想录算法day38 | 动态规划算法part11 | 1143.最长公共子序列,1035.不相交的线,53. 最大子序和,392.判断子序列

1143.最长公共子序列 体会一下本题和 718. 最长重复子数组 的区别 力扣题目链接(opens new window) 给定两个字符串 text1 和 text2&#xff0c;返回这两个字符串的最长公共子序列的长度。 一个字符串的 子序列 是指这样一个新的字符串&#xff1a;它是由原字符串在不改变字符的…

【Webpack--006】处理字体图标资源

&#x1f913;&#x1f60d;Sam9029的CSDN博客主页:Sam9029的博客_CSDN博客-前端领域博主 &#x1f431;‍&#x1f409;若此文你认为写的不错&#xff0c;不要吝啬你的赞扬&#xff0c;求收藏&#xff0c;求评论&#xff0c;求一个大大的赞&#xff01;&#x1f44d;* &#x…