【C++学习】——(七)语句

【C++学习】——(七)语句

开篇

​ 语句这个概念应该是学习编程语言最熟悉的了,还记得第一次写冒泡排序吗?那个循环和判断也难住了很多人;本篇不会具体介绍每一个语句的作用,而是讲述一些细节以及关于C++对于语句的特性;

基础

1、语句常见类型

  • 表达式语句:表达式后面加分号,对表达式求值后丢弃,会产生副作用(也就是赋值等操作);
  • 空语句:仅包含一个分号的语句,可能与循环一起工作;
  • 复合语句:由大括号组成,无需在结尾加分号,形成独立的域(语句域);

2、顺序语句

  • 从语义上按照先后顺序执行;
  • 实际的执行顺序可能产生变化(编译器优化、硬件乱序)
  • 与硬件流水线紧密结合,执行效率高;

3、非顺序语句(加入分支)

  • 在执行过程中引入跳转,从而产生复杂变化;

  • 分支预测错误可能导致执行性能下降;(分支预测是用来优化非顺序语句执行效率)

  • 最基本的非顺序语句goto:通过标签指定跳转到的位置,本质上对应了汇编语言中的跳转指令,但容易造成逻辑混乱,应避免使用;

一些语句的细节

1、在switch语句中,如果没有用break跳出当前的switch就会执行下面的case;这样的一个情况在C++17中引入了一个属性**[fallthrough]**,感兴趣的可以了解下;

2、switch与if的优劣

  • switch的分支能力较弱,switch能实现的if都能实现,反过来则不能;
  • switch在一些情况下能引入更好的优化;

3、关于for循环的使用案例,可以参考:https://zh.cppreference.com/w/cpp/language/for

4、基于范围的for循环

本质:语法糖,编译器会转换为for循环的调用方式;

注意:在C++11、17、20中不断演化改进;

参考文档:https://zh.cppreference.com/w/cpp/language/range-for

5、break和continue

break:导致外围的for、范围for、while、do-while循环或switch终止;

continue:用于跳过整个for、while或do-while循环体的剩余部分;

总结

​ 本篇对于语句的基础并没有过多的讲解,不管是C++、JAVA还是Python,在循环部分都是相似的,只有语言特性上的不同;而对于循环逻辑,在实际工程中是最重要的,往往一个边界判断错误就会导致越界或者报错的情况,这也需要大家不断实践,推荐刷一些Leetcode真题,可看我总结的Leetcode刷题专栏

​ 对于想深入了解C++的工程师来说,强烈推荐多看cppreference,基本涵盖了每个知识点的原型以及使用案例,可以抽时间静下心看看;

​ 下一篇将介绍函数,内容会比较多,在此做个预告;

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值