代码大全学习-18-使用条件语句(Using Conditionals)

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情

这一章依然比较简单。条件语句主要有两类,if-else,和switch-case。

总体的原则都是要提高可读性,降低犯错率,提高效率等。

if-else

对于if-else语句来说,要注意的有这么几条:

  • 一、先写正常情况下会发生的条件,这样读的人一看就知道正常情况下会怎么样,可以很容易的知道这段代码的功能,同时执行效率也会提高,因为正常的情况会是最可能发生的情况。
  • 二、把正常的情况放在if后面而不是else后面。这样流程会清晰很多。
  • 三、用了if就要考虑要不要用else,如果不用最好注释。
  • 四、考虑是否要交换if和else的内容。
  • 五、很复杂的条件检测最好用一个布尔函数来调用。太复杂的条件会让读者很难捕捉到你这个判断到底在判断什么。
  • 六、保证所有的情况都要覆盖到。条件嵌套多了的时候很可能会漏掉某些情况的处理。
  • 七、考虑是否可以用case语句来实现。

switch-case

对于switch-case语句来说,要注意的也有几条:

  • 一、case的顺序。这个是最常用的问题,一般来说把使用频率最高的,正常的case放在前面,符合人的阅读习惯。如果各个case的地位都是平等的,那么可以考虑要字母顺序等。
  • 二、每个case里的语句尽量简短,不要一个case写一页,太多了就改成函数。
  • 三、用default的case去检查错误的情况,正常流程不应该跑到default里去。不要default里还包括一个正常的case,那样很容易搞混,尤其要修改的时候,读代码的人可能根本不知道是这样的。
  • 四、像C++中如果不break这个case执行完会执行下一个,要格外小心。如果真的是想用这种特性,一定要注释,一般不提倡这样用。

好了,这一章就这些内容。同样附上checklist:

Checklist: Using Conditionals

if-then Statements

  • Is the nominal path through the code clear?
  • Do if-then tests branch correctly on equality?
  • Is the else clause present and documented?
  • Is the else clause correct?
  • Are the if and else clauses used correctly-not reversed?
  • Does the normal case follow the if rather than the else?

if-then-else-if Chains

  • Are complicated tests encapsulated in boolean function calls?
  • Are the most common cases tested first?
  • Are all cases covered?
  • Is the if-then-else-if chain the best implementation-better than a case statement?

case Statements

  • Are cases ordered meaningfully?
  • Are the actions for each case simple-calling other routines if necessary?
  • Does the case statement test a real variable, not a phony one that's made up solely to use and abuse the case statement?
  • Is the use of the default clause legitimate?
  • Is the default clause used to detect and report unexpected cases?
  • In C, C++, or Java, does the end of each case have a break?
C语言第二章Conditionals and Loops 文章目录ConditionalsRelational Operators(关系运算符)Conditional Expressions(条件表达式)Nested if Statements(嵌套 if 语句)The if-else if StatementThe switch StatementLogical Operators(逻辑运算符)The && OperatorThe ! OperatorThe while LoopThe do-while Loopbreak and continu 阅读详情

相关推荐

从CST软件测试大赛回来,聊聊JUnit单元测试和PIT变异测试那些实战“坑”

本文分享了CST软件测试大赛中JUnit单元测试和PIT变异测试的实战经验,详细解析了环境配置、测试脚本优化、变异测试策略等七个关键陷阱,帮助开发者提升测试效率和竞赛成绩。特别针对Java开发者,提供了JUnit和PIT的高阶避坑指南。

weixin_42570296的博客 370

代码大全学习--使用条件语句

在编程的过程中经常会用到条件语句。在重构自己的代码以及给别人做代码审查的时候,都会发现有时候条件语句写的不是很流畅,阅读起来有点费劲,现在就来看看Steve McConnell怎么说的。 1.简单的if-then语句 (1)首先写代码的正常路径,再处理不常见的情况; (2)确保对于等量的分支是正确的(不要用“>”...

weixin_30342209的博客 219

代码大全第15章,使用条件语句

一、if-else语句 1、把正常情况的处理放在if后面而不要放在else后面 2、不写写空的if-else语句 3、测试else代码的正确性 4、检查if-else是不是弄反了二、if-else if语句 1、把常见的放在最前面 2、利用布尔函数调用简化复杂的检测 3、确保所有情况都已经考虑到 4、如果可以使用case语句,尽量使用case语句三、case语句 1、为case语句

small-dream的博客 751

代码大全学习笔记——第十五章,使用条件语句

第十五章,使用条件语句前言15.1 if语句简单if-then语句:1、  首先写正常的代码路径,再处理不常见的情况。2、  确保对于等量的分支是正确的。3、  把正常的情况放在if后面而不是else后面。4、  让if后面跟一个有意义的句子。

常高伟的专栏 1050

代码大全读书笔记(使用条件语句

使用条件语句 if语句 1 首先写正常的代码路径;在处理不常见的情况 在编写代码时,要使得正常情况的执行路径在代码中是清晰的,确认那些不常见的情况不会遮掩正常的执行路径。 这对可读性和代码性能来说都很重要 2 确保对于等量分支是正确的 请不要用>代替》=或者<代替<= 3 把正常的情况处理放在if后面而不要放在else后面。把你认为会正常出现的情况放在前面来处理。...

chenfujian87的专栏 283

代码大全学习-顺序语句,条件语句

1、顺序语句(直线型)   ·按照依赖关系进行排列   ·让依赖关系变得列明显(如使用变量)   ·如果没有依赖关系,设计使用相关的语句尽可能地接近  ! 语句之间的依赖关系变得明显吗?(子程序名称、参数、变量、注释、)断言或错误来检查依赖关系 ! 如果依赖关系不明显,是否用注释进行了说明? ! 代码容易按自上而下的顺序读吗? ! 相关的语句被组织在一起吗? ! 把相对独立的语句放进稳中有各自的子

design1997的专栏 966

使用指南:react-jsonschema-form-conditionals

使用指南:react-jsonschema-form-conditionals 项目介绍 react-jsonschema-form-conditionals 是一个基于 react-jsonschema-form 的扩展库,它引入了条件逻辑功能,允许开发者通过JSON模式来表达更复杂的业务逻辑控制。这特别适用于那些具有丰富业务逻辑、需求频繁变动且管理这些变化无需修改应用程序本身的场景。项目支持两...

gitblog_00061的博客 924

ansible(七)Conditionals 和 loops,自定义loops插件

ansible的Conditionals 和 loops 和salt-stack比起来真的太强大了。 salt-stack使用判断循环,好像,只能使用模板里面的判断和循环。 而ansible本身自带了适用于各种场景的判断循环插件。。 不但如此,像loops,我们还可以自己编写插件,满足我们的实际需求。 先说说ConditionalsConditionals相对loops来说,简单,就一个关键字when 和咱们其他的程序语言的条件判断一个样,when 后面也是加一个bool值,或者bool值的结果 下

zw1172779587的博客 215

React : JXS & Conditionals & Lists

Conditionals Flow import React, { Component } from 'react'; import Person from './Person/Person' class App extends Component { state = { persons:[ {name:'test',age:18}, {name:'x...

材女的进击 189

Python 入门教程 5 ---- Conditionals & Control Flow

第一节 1 介绍Python利用有6种比较的方式 == , != , > , >= , < , <= 2 比较后的结果是True或者是False 3 练习 1 把bool_one的值设置为 17 < 118%100 2 把bool_two的值设置为 100 == 33*3 + 1 3把bool_two的值设置为 19...

我是传奇 163

【Python-5】Conditionals & Control Flow

第一节 1 介绍Python利用有6种比较的方式 == , != , > , >= , < , <= 2 比较后的结果是True或者是False 3 练习 1 把bool_one的值设置为 17 < 118%100 2 把bool_two的值设置为 100 == 33*3 + 1 ...

藏经阁 | 玄苦 1995

python入门教程 5-------- Conditionals & Control Flow

开发

m0_56221131的博客 209

CS61B Spring 2014 | Lecture Notes | 4. Types/Conditionals

这是我学习CS61B Spring 2014第四课整理的笔记,先记录下来课堂内容以便后期复习,希望大家学习愉快! 课堂内容版权为伯克利CS61B所有 课堂链接:https://www.bilibili.com/video/BV1vt411W7yu?p=3 Primitive Types -built right into Java -core to the language -no need to create an object to store a primitive type -can be stor

seven_study_log的博客 210

Ansible自带化运维工具术语大全_ansible gather_facts什么意思(1)

为了做好运维面试路上的助攻手,特整理了上百道,让你面试不慌心不跳,高薪offer怀里抱!这次整理的面试题,本份面试集锦涵盖了1、什么是运维?2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?3、现在给你三百台服务器,你怎么对他们进行管理?4、简述raid0 raid1raid5二种工作模式的工作原理及特点5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?

2401_83739727的博客 938

CMake使用指南

使用外部已有库。

m0_68794014的博客 362

gulp初学使用总结

之前从网上看到用gulp构建的人还是挺多的,今天试着学习了一下,基本都是从其他网站摘录的,以下是总结: 还是先贴一下项目结构吧: 我把原始的代码都放到了assets文件里边,dist是gulp生成的images,scripts,styles,所有的*.html都发布到了根目录 一、全局安装gulp:   $ npm install --global gulp 二、创建pa...

weixin_33800463的博客 104

vscode 的tab与空格设置 ,vscode使用sftp配置 ,vscode代码补全插件

vscode默认就是一个tab=4个空格,若想要修改请进入seting里面设置。3.也可以选择:将缩进转换为制表符,然后保存即可。目前使用shell-format。目前使用Clang格式化风格。

喜欢打篮球的普通人 1万+

轻松掌握React条件渲染:React Bits-CN中的JSX条件判断技巧

React条件渲染是React开发中常用的核心技能,它允许开发者根据不同的状态或条件动态显示不同的组件内容。在React Bits-CN项目中,提供了多种实用的JSX条件判断技巧,帮助开发者编写更简洁、可维护的代码。本文将详细介绍这些技巧,让你轻松掌握React条件渲染的精髓。 ## 为什么需要条件渲染? 在实际开发中,我们经常需要根据不同的情况展示不同的UI。例如,用户登录状态不同显示不同的

gitblog_00493的博客 518
上一篇: 代码大全学习-17-组织顺序排列的代码(Organizing Straight-Line Code)
下一篇: 代码大全学习-19-控制循环(Controlling Loops)
tyst08
博客等级 码龄19年 1822粉丝 97原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值