[C语言]菜鸟的一些理解—循环结构
循环结构
当我们要重复执行一段代码,这时我们就要用到循环结构了。
for的使用
for(表达式;判断表达式;循环控制)//这是我的理解
for(表达式1,表达式2;判断表达式;循环控制)
例1:1到100和
#include<stdio.h>
int main(void)
{
int i = 0;
int m = 0;
for(i = 0;i <= 100;++i)
m = m + i;//重复该语句,直到i > 100
printf("m = %d\n",m);
return 0;
}
例2:计算从m到n的和
#include<stdio.h>
int main(void)
{
int i = 0;
int m = 0;
int n = 0;
printf("请输入m和n,以空格键分开:");
scanf("%d %d",&m,&n);
for(;m > n;)//保证m < n
{
printf("输入错误,请保证m < n:");
scanf("%d %d",&m,&n);
}
for(i = m,m = 0;i <= n;++i)
m = m + i;
printf("m = %d\n",m);
return 0;
}
for 的嵌套
例3:打印乘法口诀
#include <stdio.h>
int main(void)
{
int i = 0;
int j = 0;
for(i = 1;i <= 9;++i)
{
for(j = 1;j <= 9;++j)
printf("%d*%d=%d\t",i,j,i*j);
printf("\n");
}
return 0;
}
while 语言的使用
while 分为while头和while体
其标准形式如下:
while(判断表达式)//while 头
{
操作; //花括号内的是while体
}
例4:使用while语言计算1到100的和
#include <stdio.h>
int main(void)
{
int i = 0;
int m = 0;
while(i <= 100)
{
m = m + i;
++i;
}
printf("m = %d\n",m);
return 0;
}
while语句和for语句的对比:
while(判断表达式) for(;判断表达式;)
{ {
操作; 操作;
} }
使用while语句实现:计算m到n的和
例5:
#include <stdio.h>
int main(void)
{
int i = 0;
int m = 0;
int n = 0;
printf("请输入m和n,以空格键分开:");
scanf("%d %d",&m,&n);
while(m > n)
{
printf("你输入错误,请保证m < n:");
scanf("%d %d",&m,&n);
}
i = m;
m = 0;
while(i <= n)
{
m = m + i;
++i;
}
printf("m = %d\n",m);
return 0;
}
do-while语句的使用,基本形式如下:
do
{
操作;
}while(判断表达式);
例6:计算1到100的和
#include<stdio.h>
int main(void)
{
int i = 0;
int m = 0;
do
{
m = m + i;
++i;
}while(i <= 100);
printf("m = %d\n",m);
return 0;
}
例7:使用do-while计算m到n的和
#include<stdio.h>
int main(void)
{
int i = 0;
int m = 0,n = 0;
do
{
printf("请输入m和n,以空格分开:");
scanf("%d %d",&m,&n);
}while(m > n);
i = m;
m = 0;
do
{
m = m + i;
++i;
}while(i <= n);
printf("m = %d\n",m);
return 0;
}
do-while 和 while的对比
do-while 和 while大致相同,但是do-while语句的循环体至少会执行一遍。
do-while语句可以防止一些没有必要的代码,例2 例5 代码可以优化 改成 例7
goto 语句的使用,标准形式如下:
TIAO:
操作;
goto TIAO;
使用goto语句 实现死循环。
例8:
#include <stdio.h>
int main(void)
{
TIAO:
printf("printf\n");
goto TIAO;
return 0;
}
使用goto语句,实现循环。
#include <stdio.h>
int main(void)
{
int i = 0;
int m = 0;
mydo:
{
m = m + i;
++i;
if(i <= 100)
goto mydo;
}
printf("m = %d\n",m);
return 0;
}
注意:goto语句过于灵活,容易破坏程序流程,同时goto语句的大部分功能都能够用其他语句实现,所以尽量不用goto语句。
控制语句 continue 和 break
只知道他基本用法,不是很理解其作用及要用那里才合适,望高手解答。
如果我没有理解到或理解错误的,请指出,在此万分感谢!!
c语言
[解决办法]
不知道你问什么,但一而言,continue跳出本次循环,break是跳出循环,至于for,while,do-while,其实在工程里感觉差别不大,能实现具体功能不就行了。
[解决办法]
while、for、do-while基本没差,看你怎么用了,比如要先执行一遍,然后再判断的话 就用do-while或者先执行一遍 然后再for、while。
不过for和while还是有点细小的差别的,注意下就好了。举个例子:
循环渐进吧!楼主坚持就好了!
不过还是有蛮多细节问题,
比如 break,continue, 这些关键字 ,do while , while 等这些差别
多敲代码,多尝试吧!这些东西自己好好体会理解下!
[解决办法]
一个国外大佬专门发了一篇文章,仔细分析了goto对效率的影响,而且言之凿凿!从此之后,几乎所有的教科书都采用了此观点。而且措辞都是这句:“尽量不用goto语句!”
其实没有这么绝对!跳转指令固然破坏了结构化编程,但是也是避免重复性编码的唯一良策。否则,你的循环都需要展开,这是很疯狂的!此外,很深层的嵌套与大角度程序转向,用一般的标志与break结合法,增加了实现的难度。总之,goto这个家伙就像一个荡妇,能给肉欲的男人快乐,但自身名声不佳!
然而,在linux内核里,你会发现她大放光彩!用的还是相当频繁的!正所谓:一把双刃剑,利弊看放在谁的手里,看你如何使用喽!
恕我多言几句!不当之处,多多包涵!
![[C语言]初学者的一些理解—循环结构](http://img.reader8.net/uploadfile/jiaocheng/20140134/2751/2014012700512743214.gif)
[解决办法]
你的循环代码都错了 。
正确的我已经发给你了啊