很多初学者的代码其实都不够“漂亮”,那是因为没有养成好的编码习惯。本篇博客以C语言为例,总结一些好习惯。其实,很多习惯都是肌肉记忆,举个例子:请你写一个程序,输入2个整数并输出它们的和。有些朋友可能写出来是这个样子。
#include<stdio.h> int main() { int a=0; int b=0; int sum=0; scanf("%d%d",&a,&b)
; sum=a+b; printf("%d\n",sum); return 0; }
我写这段代码,是在模仿有些朋友在初学的时候容易写成的样子。更有甚者,写成这个样子:
#include<stdio.h> int main() { int a=0; int b=0; int sum=0; scanf("%d%d",&a,&b)
; sum=a+b; printf("%d\n",sum); return 0; }
让人看的不太舒服。甚至可以让你更加不舒服:
#include<stdio.h> int main() { int a,b,sum;scanf("%d%d",&a,&b); sum=a+b;printf(
"%d\n",sum); return 0; }
这是什么感觉?嗯……你为啥不都写在一行呢?下面我来谈谈好的写法是怎样的。
<>空格
首先改进一下第一种写法,先加一些空格:
#include <stdio.h> int main() { int a = 0; int b = 0; int sum = 0; scanf("%d
%d", &a, &b); sum = a + b; printf("%d\n", sum); return 0; }
我在#include和头文件之间、“双目操作符”两端、逗号后面、scanf的两个%d之间都加上了空格,感觉舒服一点了。这就是今天我要说的第一个习惯:在合适的地方添加空格!
什么是合适的地方呢?双目操作符两端,逗号后面,分号后面,关键字后面都可以添加空格。比如经典的for循环,糟糕的写法是:
for(int i=0;i<10;++i) {}
首先,for作为关键字,后面可以添加空格,分号后面也可以添加空格,如下:
for (int i=0; i<10; ++i) {}
等号和小于号属于双目操作符,两端也可以添加空格:
for (int i = 0; i < 10; ++i) {}
这样是不是好看多了?
注意:++是单目操作符,++和i之间不要添加空格,多余的空格显得画蛇添足,多此一举。
<>空行
除此之外,可以在合适的地方添加空行,比如函数和函数之间,函数内部不同逻辑的代码之间。比如:
void test1() { printf("test1\n"); } void test2() { printf("test2\n"); } void
test3() { printf("test3\n"); }
前面的例子中,头文件的包含和main函数之间可以添加空行。在main函数内部,变量的定义,输入值并且计算输出,main函数的返回属于不同的逻辑,中间可以添加空行。
#include <stdio.h> int main() { int a = 0; int b = 0; int sum = 0; scanf("%d
%d", &a, &b); sum = a + b; printf("%d\n", sum); return 0; }
<>缩进
顺带一提,“缩进”也很重要。大括号内部的逻辑都要向右缩进,比如:
if (flag) { printf("true\n"); }
当然,如果省略大括号的情况,也要缩进。
if (flag) printf("true\n");
过多的缩进也不好。比如switch case语句中,case一般和switch的大括号对齐,而不缩进。
switch (n) { case 1: printf("1\n"); break; case 2: printf("2\n"); break;
default: printf("default\n"); break; }
自然,在前面的例子中,main函数内部的语句都要添加缩进。
<>注释
还有最后一点:记得写注释!注释是用来解释代码的,要放在解释的代码的上边或右边,比如:
#include <stdio.h> int main() { // 定义变量 int a = 0; int b = 0; int sum = 0; //
存放和 // 输入数据 scanf("%d %d", &a, &b); // 计算 sum = a + b; // 输出数据 printf("%d\n",
sum); // 输出后换行 return 0; }
如果注释在单独的一行,可以认为这一行是一个“空行”,就不用添加额外的空行了。当然,你想添加也行,比如:
#include <stdio.h> int main() { // 定义变量 int a = 0; int b = 0; int sum = 0; //
存放和 // 输入数据 scanf("%d %d", &a, &b); // 计算 sum = a + b; // 输出数据 printf("%d\n",
sum); // 输出后换行 return 0; }
<>总结
* 双目操作符两端,逗号后面,分号后面,关键字后面都可以添加空格。
* 函数和函数之间,函数内部不同逻辑的代码之间可以添加空行。
* 大括号内部的逻辑都要向右缩进,但是过多的缩进也不好。
* 添加注释,注释是用来解释代码的。
感谢大家的阅读!