学生在学习编程写代码时需要注意什么?
2022-07-28 12:26:41来源:未知作者: 飞飞阅读量:
一直以来,有不少学生在学习编程后,都会问我在编写代码时需要注意什么,怎么样才能让代码显得更加清晰,变量定义更合理,写起来更顺畅。
这是一个非常好的问题,养成良好编码习惯的学生,会觉得写起代码来很顺畅,整个代码条理清晰,写起来特别上头,代码编写过程很有成就感。
从计算机运行效率的角度来说,代码编写的好一些并不会增加运行效率,但是它会影响到人的心情。这就像写一篇作文,卷面整洁,字体工整的文章会让人感觉跟舒服,写的人也会更有成就感。特别是有一些比较重要的逻辑,如果写的比较清晰,隔断时间后再看起来,会很快理解当时编写代码的思路,不至于让人感觉很费解。同时,代码共享给其他人,也比较方便其他人观看。
另外,形成良好的编写习惯后,会避免很多低级的错误。很多学生写代码的过程会人为的引入很多低级错误,例如变量名写错了,有时候在 for 循环中,写错一个变量名称会导致各种奇怪问题,而且很难检测出来。
那么怎么才算是好的代码风格呢? 怎么样养成好的代码习惯呢? 代码风格问题涉及到的内容很多,每种编程语言都有自己的编程风格,每家公司也会制定自己的编码标准。工程代码中的代码风格和算法中的代码风格也并不完全相同,以下我们就以C++ 为例,针对USACO算法竞赛中的代码风格做一个介绍:
- 代码各部分定义清晰:
对于 C++ 文件来说,一份代码会分成几个区域,包括头文件引入、类型定义、变量定义、函数定义等,即使代码很简单,也会包括这几个部分,所以建议可以清晰的把这几个部分依次写出来,可以参考以下示例:
上述代码是一份很简单的查询数组中最大值的算法。把每个部分的代码放在应有的区域中,当遇到bug 时,很容易在固定区域中查询相关代码的定义。
- 变量定义
在很多工程性代码中,是不建议把变量定义成全局的,但在算法编程中则是鼓励这样做的。主要的好处在于,第一可以方便在各个函数中访问。第二全局变量默认是有初始化的,不容易产生不必要的错误。第三有些比较大的数组,如果定义在函数中可能会导致堆栈空间不足。
另外,一些临时变量,建议需要使用的时候再定义,例如 for 语句的循环变量,直接定义在 for 语句中是比较好的选择,多个for 语句可以使用相同的循环变量,相互之间并不影响。
关于变量命名方面,建议在能够表达具体意义的情况下,采用尽可能短的名称。一些常常使用的变量名称可以固定下来,例如循环变量,一般都使用 i,j,k 等。
- 模块划分
在编写代码的时候,同一逻辑的代码可以紧凑些,不同逻辑的代码则可以空一行,或者加一个注释,这样能够很方便区分各个部分的代码实现了什么逻辑。对于比较长的代码,可以考虑分成多个函数,每个函数尽量只实现逻辑单一的功能。
- 关键模块注释
算法的一些比较关键的逻辑可以加一些注释,例如整体算法的思路,算法中关键的某一个步骤等。写注释的过程可以帮你进一步理顺思路,并且增加注释后,后续如果要修改,也能很快理解之前的思考逻辑。
很多计算机高手在编码上都是有洁癖的,喜欢整洁,简短,清晰的代码风格。好的代码习惯,也会让人在编程时产生成就感和愉悦感。为了让自己在后续的编码过程中能够更加舒畅,请尽早养成好的编码习惯吧。
相关文章
2022物理碗Physicsbowl竞赛真题考题解析
就在2小时前, 今年的“物理碗”国际竞赛落下帷幕 !作为全球含金量最高的物理竞赛之一,本次参赛的中国学生超5000名!在物理碗中获得TOP100奖项的学生...
阅读: 781
国际物理竞赛都有哪些?哪个含金量高?如何选择!
物理竞赛是物理,工程,天文等相关专业申请必备利器,也是仅次于数学的热门学科。在物理学科领域,足具权威性和代表性的赛事包含: 美国物理碗竞赛...
阅读: 297
SASMO新加坡国际数学竞赛详细介绍及奖项设置
0 1 SASMO是什么? 众所周知,新加坡数学的教学体系,是国际上最优秀的数学之一,SASMO是由新加坡国际数学竞赛中心(SIMCC)组织的一项国际数学竞赛,现...
阅读: 1255
2023秋季英国留学申请季趋势分析
23Fall已经有部分专业开启申请了,为了让大家能更好的迎接这个申请季的到来!今天小编就根据23Fall目前各校的招生政策,结合22Fall的录取情况,来预测一...
阅读: 90
更多栏目
热门文章
-
1.2022物理碗Physicsbowl竞赛真题考题解析
- 1
- 2022物理碗Physicsbowl竞赛真题考题解析
- 2023-02-20
- 1
-
2.国际物理竞赛都有哪些?哪个含金量高?如何选择!
- 2
- 国际物理竞赛都有哪些?哪个含金量高?如何选择!
- 2022-12-12
- 2
-
3.SASMO新加坡国际数学竞赛详细介绍及奖项设置
- 3
- SASMO新加坡国际数学竞赛详细介绍及奖项设置
- 2022-12-12
- 3
-
4.AMC数学竞赛如何做题效率最高?AMC竞赛备考PlanB高效解决
- 4
- AMC数学竞赛如何做题效率最高?AMC竞赛备考PlanB高效解决
- 2022-10-17
- 4
-
5.2023秋季英国留学申请季趋势分析
- 5
- 2023秋季英国留学申请季趋势分析
- 2022-09-30
- 5
-
6.2022年AMC数学竞赛考试即将开始!考试注意事项说明
- 6
- 2022年AMC数学竞赛考试即将开始!考试注意事项说明
- 2022-09-30
- 6
-
7.2022年寒假可以参加的写作竞赛有哪些?
- 7
- 2022年寒假可以参加的写作竞赛有哪些?
- 2022-09-30
- 7
-
8.背景一般可以申请英国商学院吗?可以选哪些项目?
- 8
- 背景一般可以申请英国商学院吗?可以选哪些项目?
- 2022-09-29
- 8
-
9.去美国留学的中国学生申请最多的专业是哪些?
- 9
- 去美国留学的中国学生申请最多的专业是哪些?
- 2022-09-29
- 9
-
10.物理碗/BPhO/AP物理课程难度对比,BPhO和物理碗竞赛可以同时备考吗
- 10
- 物理碗/BPhO/AP物理课程难度对比,BPhO和物理碗竞赛可以同时备考吗
- 2022-09-29
- 10
热门图文
-
互联网+、挑战杯、创青春等创新创业大赛含金量高吗??
2022-07-28
-
2022年芬兰人口数据统计公布!华人为第四大人口种族
2022-07-28
-
蓝思指数是什么?蓝思指数详细分析
2022-07-28
-
2022下半年数学竞赛比赛时间及官网链接整理
2022-07-28
-
2022年全国大学生英语竞赛题型及分值分布详解答题策略
2022-07-28
-
大学生竞赛项目汇总!能加分保研的工科类竞赛盘点
2022-07-28