代码大全学习-19-控制循环(Controlling Loops)

代码大全学习-34-自注释的代码(Self-Documenting Code) 说到注释,总是有争论要不要注释,有人喜欢尽可能多的注释,有人根本不写注释。作者的意见是适当的注释是需要的,但不要重复代码,不好的注释还不如不注释。总结性的,描述意图的注释是好的注释,它会告诉读者代码所没有提供的信息,是我们的目标。而另一大目标就是写出自注释的代码,无比清晰,根本不需要注释。这样可以大大节省读注释的时间,分析注释与代码是否一致的时间,从而提高效率。 具体的方法有很多, 篇 阅读详情

循环是相对来说复杂一些的控制结构。大体来说分为两类:For循环和While循环。像foreach之类的可以归到for类里,do-while之类的可以归到while循环类里。如何选择呢?一般来说,知道循环的次数,用for,否则用while。For循环相对来说比较简单些,所以尽量用它。

选好了之后,说说如何用。第一原则,简单!能写多简单就写多简单。简单才不容易出错,才易读,易维护。有了第一原则就可以推出后面的。第二、尽量把循环体看做一个黑盒,控制都在外面做,这样流程会很清晰,一看就知道这个循环是干什么的,判断条件是什么。第三、让循环只有一个入口,一个出口,循环只做一件事情,这也是为了功能清晰明了。

只有一个入口,并把初始化的代码都放在入口前,让读者一眼就看出哪是入口,哪是初始化,可以减少出错的可能性。For循环在这一点上做得更好一些,while循环一个常犯的错误就是改了前面却忘了改后面。当然,该用while的时候还是要用while。

循环体一定要用括号括起来,不要因为只有一行就不括,因为很有可能以后会增加。用括号括起来不会有任何性能的损失,可读性更好,实在不应该偷懒不括。循环体应该只做一件事,本来循环就是相对比较复杂的结构,做几件事容易把人搞晕。循环体中对于循环变量的处理语句要集中放在最前面或者最后面,不要东一句西一句,否则改的时候容易出错。循环体要尽量避免为空的情况,空循环要么是有问题要么是有特殊用途,要特别留意。

一定要检查循环是否会退出,检查每一种情况,不要出现死循环。可以考虑用一个安全计数器来控制循环的次数不要超过一个设定值,以保证循环一定会退出。循环的退出条件应该很明显,不要用改变循环计数器值的方式来退出循环,也不要在循环结束后再用到循环计数器的值,这些都容易出错。对于要提前退出循环的情况,用break或者continue一定要小心,这种情况下循环体不再是一个黑盒,不得不看循环体的代码才知道啥时候退出,

代码大全学习-25-开发人员测试(Developer Testing) 开发人员测试不同于测试人员测试,前者是白盒测试,后者是黑盒测试。开发人员测试主要包括单元测试,组件测试,集成测试等。不管哪一种,测试的目的都是为了发现缺陷。所以,既然测试,首先就要认为一定会发现缺陷,若是总想着找不到缺陷,就会真的找不到缺陷。测试这件事,要从一开始就考虑,像测试用例,早晚都是要写的,不如先写,想用就能用,还能更早发现需求是否有问题。 作者在书中通过一个例子详细的列出了各种 阅读详情

相关推荐

代码大全学习-12-伪码编程(The Pseudocode Programming Process)

伪码编程的概念相信大家都知道,就是用伪代码,也就是描述性的语句来表示一个程序的实现过程。遗憾的是,包括我自己在内,用的人不多,就算是用,用得也不好。看完这一章之后觉得,以后还是要好好用这个工具。 伪码编程有很多好处,首先,它是用类似于自然语言的陈述,有利于我们理清思路,到底这个类,这个函数要干什么,怎样做。伪码不要用程序语言的语法,尽量要用自然语言,这样可以把它翻译成任何程序语言。伪码的

tyst08的专栏 1727

(转载)LOOP WITH CONTROL 用法

转载自@凡尘clsoho源链接:http://www.cnblogs.com/clsoho/archive/2010/01/22/1654379.htmlLOOP - WITH CONTROLSyntax语法LOOP [AT itab INTO wa [CURSOR top_line] [FROM n1] [TO n2]] WITH CONTROL contrl....EN...

weixin_30919235的博客 625

代码大全学习-7-设计的实践

前面一节的启发主要专注于设计的属性,也就是最终的设计是什么样的,这一节的启发则专注于设计的实践,即通过怎样的步骤可以得到好的结果。同样是启发式,所以也有各种各样的方法。 1、迭代。一般来说第二次的设计都会比第一次的好,而且我们会从每一次设计中学到东西,从而提高整体的设计水平。 2、分而治之,各个击破(Divide and Conquer)。人脑的容量,处理能力都有限,对于大的问

tyst08的专栏 1379

TMS320C6748开发视频教程笔记 第12章 通用输入输出口 GPIO

第12章 通用输入输出口 GPIO12-1 相关例程演示12-2 管脚复用配置12-3 输入输出模式12-4 中断12-5 EDMA312-6 单步调试及测量代码执行时间 12-1 相关例程演示 1、GPIO_LED 输出模式,控制LED闪烁 2、GPIO_KEY 输入模式(中断) 按键控制核心板LED点亮 3、GPIO_KEY_TIMER_EventCombine GPIO按键中断与定时器1中断...

u013673437的博客 4940

LEETCODE--Count Primes

Description:Count the number of prime numbers less than a non-negative number, n.Credits: Special thanks to @mithmatt for adding this problem and creating all test cases.Hint:1.Let’s start with a isPr

prettysky123的专栏 465

代码大全2——第16章控制循环

代码大全2——第16章控制循环 什么时候使用while循环 当不知道循环要迭代几次时,使用while循环 分为检测位于循环的开始和检测位于循环的结尾 何时使用for循环 for循环可以执行那些不需要循环内部控制简单操作。当循环控制就是简单的递增或递减,如对某一容器的元素进行迭代的时候,就可以使用for循环 何时使用foreach循环 适用于对数组或者其他容器的各项元素执行操作。它的优势在于消除了循环内务处理算术,从而也就消除了任何有循环控制算术导致出错的可能性。 循环控制 进入循环

qq_43287952的博客 249

循环控制自编代码

实现的主要功能: 1.实现用户自定义用户和密码的注册功能 2.用户的登录功能,用户名和密码为自定义的密码和用户名 3.用户登录后看到的选择界面 4.随机输出两位整数进行算数运算 5.输出爱心图形方法 6.杨辉三角的方法 7.输出自任意的乘法表 #代码块 import java.util.Scanner; public class Demo6{ String name; String sex...

Code__rookie的博客 453

c语言循环控制代码实例,4.C语言流程控制——循环语句代码案列

while语句#import int main(int argc, const char * argv[]){@autoreleasepool {// 输出10个hello?// int i=1;// while (i++<=10) {// printf("hello\n");//// i++;// ...

weixin_39559015的博客 245

代码大全学习笔记————第十六章控制循环

16.1 选择循环的种类 计数循环执行的次数是一定的,可能是针对每位雇员执行一次 连续求职的循环预先并不知道将要执行多少次,它会在每次迭代时检查是否应该结束 无限循环一旦启动就会一直执行下去 迭代器循环对容器类里面的每个元素执行一次操作 什么时候使用while循环 检测位于循环的开始:用while循环 检测位于循环的结尾:至少要执行一次,用do-while循环 什么时候用带退出的循环 C、C+...

u012850592的博客 385

代码大全学习-35-个人性格(Personal Character)

凡事俱在人为,程序员也是人,人的性格会对程序员的工作产生不同的影响。 很多人认为聪明是程序员的一大优势,其实不然,往往是聪明反被聪明误。因为现代软件的复杂性,再聪明的程序员也无法在脑子里同时理清所有的问题,所以真正牛X的程序员是那些认识到了自己的脑子容量有限,而采取了对应措施的人,比如降低软件复杂性。这也就是说好的程序员要谦虚,认识到自己的不足,这样才能进步,这道理在哪里都是一样有效。

tyst08的专栏 2534

代码大全学习-11-防御式编程(Defensive Programming)

防御式编程,顾名思义,就是保护自己不受其他人错误的影响,防御那些意料之外的错误。比如对一个函数来说,即使它被传递了一个错误的数据,它还是可以继续正常工作,哪怕这个错误数据是其它函数的错,好的程序永远不会输出垃圾信息。防御式编程帮助我们更容易发现错误,改正错误,当然,最好是一开始就不要引入错误,也就是可以利用一些方法,规则尽可能减少错误的产生。好了,下面说方法。 首先,要抵御外来的侵略,也

tyst08的专栏 1542

代码大全学习-24-合作开发(Collaborative Construction)

这一章介绍了合作开发的一些常用方法。所有的合作开发都基于这样一个前提,即任何开发人员都有自己的盲点,大家的盲点不一样,所以合作起来就可以减少盲点,也就减少了开发缺陷出现的几率。合作开发的方法有很多,结对编程,正式审查(Formal Inspections),非正式审阅,读代码,读文档,几个人讨论等等,形式多样,不必拘泥。作者在书中重点讲了前面两种。 结对编程相信大家就算没用过也至少有所耳

tyst08的专栏 1458

代码大全学习-26-调试除错(Debugging)

调试,号称是软件开发过程中最耗时的工作,无数的开发人员在上面花费了无数的时间。毫无疑问,想办法提高调试的效率是非常有用的。那么关键在哪里呢?就是要用科学的方法。 相信所有的开发人员都有这样的经历:要改正一个缺陷,试试改掉这一句行不行,再试试改掉那一句行不行,试来试去,越改越多,最后自己都迷糊了,不知道改了些什么。也许一下子可以了,也许还是不行,还是不知道为什么行或者不行。这个过程会花费很

tyst08的专栏 1219

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

这一章依然比较简单。条件语句主要有两类,if-else,和switch-case。 总体的原则都是要提高可读性,降低犯错率,提高效率等。 对于if-else语句来说,要注意的有这么几条:一、先写正常情况下会发生的条件,这样读的人一看就知道正常情况下会怎么样,可以很容易的知道这段代码的功能,同时执行效率也会提高,因为正常的情况会是最可能发生的情况。二、把正常的情况放在if后面而不

tyst08的专栏 1214

代码大全学习-14-变量名的力量(Power of Variables Names)

这一章对变量名的讲述是相当的具体,作为一本手册真是名符其实。我不想在这里再重复那些具体详细的方法,可以去翻书,或者按照后面附上的checklist一条一条去检查。这里主要讲讲为什么要有那么多方法。 原因就是增强程序的可读性,从而降低程序的复杂性。所有的总总方法都围绕这一目的展开。像变量名要能准确完整的描述这个变量表示的内容,要描述它是什么(what),而不是怎么做(how),越具体越好,

tyst08的专栏 1189

代码大全学习-31-系统集成(Integration)

集成是把各个分散的软件部分合并成一个统一的系统的过程。好的集成方法能带来很多好处,比如便于诊断错误,提高代码质量,更可靠的预测,更好的用户关系,更高的士气等等;而坏的集成方法可能导致最后系统无法完成。 集成的方法可分为两大类,一类是先把所有的部分都准备好,然后一起集成;另一类是增量集成,也就是先搭个架子,然后一部分一部分往上加。第一类的问题在于一下子引入了太多的耦合,关系太复杂,出了问题

tyst08的专栏 1157

代码大全学习-6-启发式设计

各种启发式设计的方法: 1、寻找真实世界中的对象 主要包括下面几个步骤: 确定对象以及它们的属性,包括方法和数据; 确定每个对象是干什么的; 确定每个对象可以对其他的对象做什么; 确定每个对象的哪些部分是公开的; 确定每个对象的接口。 这几个步骤不一定按这个顺序,可能是反复确认。 2、形成一致的抽象(Form consist

tyst08的专栏 1107
上一篇: 代码大全学习-18-使用条件语句(Using Conditionals)
下一篇: 代码大全学习-20-不常见的控制结构(Unusual Control Structures)
tyst08
博客等级 码龄19年 1822粉丝 97原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值