整理贴(不同的问题用不同的语句主要目的提高程序的可读性以循环为例)(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)就是加注释
因为你的程序有自己的思路和想法 小程序可能没有必要 可是程序大了之后注释就显得特别重要 所以要提高程序可读性这种小习惯要慢慢培养
(以上纯属个人想法 第一次写这种东西希望不招恶 )