容易看懂的才是好代码



整理贴(不同的问题用不同的语句主要目的提高程序的可读性以循环为例)(c语言中)

作为一个初学渣 这里纯粹记录贴(捂脸哭):

循环学了好久也用了好久   用习惯了一种循环语句之后就不会用别的写东西(是不是只有我一个人这样觉得??)

   循环结构是指被重复执行的一个操作的集合。循环形式有两种:

1:当型循环;

2:直到型循环;

能用于循环结构的流程控制语句有四种:

1:while 语句;

2:do while 语句;

3:for 语句;

4:goto语句;


两种循环形式最大的区别就是: 当型循环是先判断再执行循环体:直到型循环是先执行一次再判断;

1.不同的情况选择不同的方式能很大程度的减少代码量和变量数目:(上例子)

前几天在写插排有序的时候的一段代码

while(flag1==1)
{
flag2=many;
printf("请输入你要插入的数字:\n");
scanf("%d",&num);
for(i=0;i<many;i++)
{
if(num<a[i])
{
for(j=many;j>=i;j--)
a[j+1]=a[j];
a[j]=num;
many++;
break;
}

}
        if(many==flag2)
{
many++;
a[many]=num;
}
for(i=0;i<many;i++)
printf("%3d",a[i]);
printf("继续插入请按1 结束插入请按0\n");
scanf("%d",flag1);
}

下面一段是用了直到型循环:

do
{
printf("Please input the element that you want to insert:\n");
scanf("%d",&num);
many++;
for(i=1;i<many;i++)
{
temp=num;
for(j=i-1;(j>=0)&&(a[j]>temp);j--)
{
a[j+1]=a[j];
}
if(j!=i-1)
{
a[j+1]=temp;
break;
}
}
for(i=0;i<many;i++)
printf("%3d",a[i]);
printf("\n");
printf("\n1.continue/0.break\n");
scanf("%d",&flag1);
}while(flag1==1);


虽然说在这个程序里面代码量虽然没有减少但是明显觉得让人明显易懂啊(我真的觉得好容易懂啊啊最后这个);

因为肯定要先插入一个之后继续选择看还需不需要继续插入  所以这样的思路就很自然的要想到do while 这个语句 (用于菜单设计之类的事情就比较适合)可是我当时就没有用到  改了之后觉得好顺眼啊;

真实体会所以觉得这点还挺重要的   所以拉出来记录一下。

2.循环条件这种东西可不写在循环体中觉得好简洁:

这里主要就是比较一下for 循环和while循环的区别;

while 语句中改变循环条件的语句写在了循环体中 如果循环体中没有改变循环的语句就会特别恐怖  (水深火热死循环)

for循环就好在了循环体比较简单;(我习惯用for循环  毛病!!!)

但是并不是说简单就一定比while好      有些实例还是突出了while的优势

还是上面那个例子

while(flag1==1)
{
flag2=many;
printf("请输入你要插入的数字:\n");
scanf("%d",&num);
for(i=0;i<many;i++)
{
if(num<a[i])
{
for(j=many;j>=i;j--)
a[j+1]=a[j];
a[j]=num;
many++;
break;
}

}
        if(many==flag2)
{
many++;
a[many]=num;
}
for(i=0;i<many;i++)
printf("%3d",a[i]);
printf("继续插入请按1 结束插入请按0\n");
scanf("%d",flag1);
}

这个也可以用for  (太愚钝我还不怎么熟悉) 

可是就突出了while的特点    while可以用于循环次数确定和不确定都特别直观     

如果循环次数不确定的话最好用while    直观易懂提高程序的可读性;(;可读性高了整个人都好开心)

如果循环次数确定的话我还是喜欢用for(( ̄ε(# ̄)☆╰╮( ̄▽ ̄///)打脸)

毕竟简洁   灵活(好像大家用的最多的也是for)

3.不怎么懂的goto 语句

首先来看一下goto 的语法:

goto标号;

·····

标号:语句;

  重点来了(笑哭);

语句标号是用户任意选取的标识符,对   任意    这样我自己觉得程序会变得好乱 所以既然主题是提高可读性我自己觉得不要用这个啊         反正我没有用过几次;

4  杂七杂八的提高可读性:

(1):  第一个就要说变量命名的重要性 因为被好多人吐槽过我的变量命名   

int x,y,c,b,d,i,m,n;  这个是我之前的命名习惯  我自己都要弄懂好久

int num,flag1,i,j,many,change,flag2;  这个是自己现在的命名  觉得真的好读好多  谢谢那位学长的吐槽   

(2)就是加注释

因为你的程序有自己的思路和想法   小程序可能没有必要  可是程序大了之后注释就显得特别重要  所以要提高程序可读性这种小习惯要慢慢培养

    


(以上纯属个人想法        第一次写这种东西希望不招恶        )

     


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值