第八周的药之程序风格

第八周的药之程序风格
      有时候你们拿程序给我debug的时候,我可能看得很慢,因为都是被该死的手机qq排版给毁了,而同时,我也很想给你们讲讲一个对于程序正确性几乎为0但却非常重要的东西。
    风格!可读性!

可读性并不是说哦我不能读懂这个人的程序就说明他的程序可读性差哦。可读性跟写字的字体漂不漂亮一样,并不是说他用了你不懂的高科技可读性就差,而是他对于程序的一个排版吧。

首先举个例子,程序1:
 
#include <iostream>

int aaa, bbb, ccc;

int main(){
    cin>>aaa>>ccc;
    bbb=aaa+ccc;
    for (int iii=1; iii<=bbb; iii++){
       aaa++; ccc--;
    }
    aaa=bbb+ccc;
    bbb=aaa+aaa;
    ccc=aaa+bbb;
    cout<<aaa+bbb+ccc<<endl;
    return 0;
}

这个程序毫无意义,所以不要管他干啥用的(我甚至没有编译过),但是,他至少看起来一目了然,而且很严谨(咳至少我是这么认为的)
然后来看看一个酷炫的
=
=
=
=
=
=
=
=
=
=
=
程序2:

 
#include <iostream>
int _, __, ___;int main(){
cin>>_>>___;__=_+___;for (int ____=1; ____<=__; ____++){
_++; ___--;}
_=__+___;
__=_+_;___=_+__;cout<<_+__+___<<endl;
return 0;
}
我觉得这个程序很萌,但是你能读懂这个程序么,其实这个就是程序1,你觉得他们是一个妈生的么?

因此,风格影响着一个代码的可读性,这个东西就像你写字的字体一样,相信大家高考的时候都被叮嘱字要写好一点了吧?同理,一个好的可读性的程序是你能够拿这个程序跟别人进行良好交流的保证。你如果喜欢把程序写得个性一点没有问题(这甚至是一个优点,有关于如何把程序写得让人读不懂的比赛),但是我觉得学会走之前还是不要跑了吧。先学会如何规范自己的风格使之平易近人,再在其基础上发展出自己的个性。

那么我介绍一些规范风格要注意的东西
1.变量名:为变量起名的时候最好为变量想一些有意义的名字,比如记录答案用int ans;记录累加值用int sum;如果你是abcdefg党,我觉得以后你写一些比较长的程序时候你自己都会蛋疼,得经常翻回去看看这个变量是干啥用的。同时注意遵循一些程序员之间比较公认的用法(比如循环变量一般用i,j,k;保存矩阵长宽一般用n,m或者h,w)

2.缩进:有的同学大概是因为懒吧 ,代码全部紧紧贴着左边,其实这样会导致你的程序块结构不够突出
比如
if (a)
    if (c)
        i++;
    else 
        j++;
else
    if (d)
        i++;

和 
if (a)
if (c)
i++;
else 
j++;
else
if (d)
 i++;

你觉得哪个好看呢? :)
至于用两个空格还是使用tab键,就看个人喜好拉~

3.缩行 :(这个玩意其实是我自己起的名字)
有时候,不一定要一个语句一行比如
i++;
j++;
等价于
i++; j++;
这个时候怎么取舍呢?我也是建议可读性优先,不要为了缩减代码行数把所有东西都写在一行上。但是相反的,有时候缩行会让程序易于理解(比如同一行都代表着你的一个意图时),在这个上有许多发挥自己性格的空间。 
4.杂类
c++表达一个东西的话写法其实有很多的,但是一个好的写法会让程序简洁,理论上用for语句可是实现一切循环,但是为啥还会诞生了while和do while就是这个道理啦。这里只举一个例子
求a,b谁大
写法1:
if (a>b) c=a;
else c=b;
写法2:
c=(a>b)?a:b;
你喜欢哪个呢? :P

 最后,提醒一下,除了关注程序的正确性与否,自己代码的风格也是需要雕琢的呢。同理,除了学习别人程序的高科技外,还要注意下别人的程序细节有没有你可以学习的地方呢!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值