C语言中的循环到底是有什么规律呀,我真的搞不懂呀

[复制链接]
查看11 | 回复5 | 2007-12-2 08:32:23 | 显示全部楼层 |阅读模式
我在这里只能告诉你!!设置断点来研究!!怎么运行的!!逐步测试!!就会明白了!!或者自己找一个简单的循环,在纸上逐步研究也可以!很简单的!!!你想复杂了!1.while可以进行不指定次数的循环;for一般知道循环次数下使用2.也就是循环次数确定的情况一般用for;
循环次数不定的时候一般用while。我在这给你举个例子:int sum = 0;int i;for( i=1; i条件 --> 表达式2 --> 表达式3 --> 条件 --> 表达式2 --> 表达式3--> 条件 --> 表达式2 --> 表达式3 ......如此下去直到 条件不满足时,则不运行 表达式2 , 直接退出循环 ,运行别的语句while(条件){表达式2}循环的过程如下:条件 --> 表达式2 --> 条件 --> 表达式2 --> 条件 --> 表达式2 ......如此下去直到 条件 不满足时,则不运行 表达式2 直接退出循环 ,运行别的语句do{表达式2}while(条件);循环的过程如下:表达式2 --> 条件 --> 表达式2 --> 条件 --> 表达式2 -->条件......直到条件不满足,则退出循环。注意到了没有,while和dowhile恰好相反,while是先判断条件是否成立,后执行循环体,dowhile是先执行循环体,后判断条件是否成立结合一些例子可以更好的理解如:int i,sum = 0;for(i = 0;i i sum+=i --> i++(此时i = 1) --> i sum+=i --> i++(此时 i = 2) --> i sum+=i --> i++(此时i = 3) -->i退出循环注意每次循环i的增加和i是否小于3的判断,如小于3,则继续循环,不小于3,则退出循环,上述循环的循环体共执行了3次。while 和 do while 的过程类似,自己选个简单的例子分析下,慢慢体会循环的过程吧。希望我的回答对你有所帮助:-)********************************************补充:你看不懂的是怎样的循环?不如发上来,让我给你分析下~~********************************************杨辉三角:算法大概思路, 用两个数组p和temp交替使用, 先把一行内容存在p中, 按杨辉三角的规则计算出新的一行存入temp中并打印, 然后再用temp中内容覆盖旧行p, 如此循环.#includevoid print(){ int p[10],temp[10]; int i,j; p[0] = p[1] = 1; cout<<"1 "<<"\n"<<"1 1 "<<endl; for(i = 2; i<10; i++)//一次循环打印出一行 {cout<<"1 ";for(j = 1; j<i; j++)//上一行的第j-1个元素和第j个元素相加得到下行的第j个元素{ temp[j] = p[j-1] + p[j]; cout<<temp[j]<<" ";}p[0] = 1;//以下把temp中内容覆盖到p中以便进行下行的计算for(j = 1; j<i; j++){ p[j] = temp[j];}p[j] = 1;cout<<"1 "<<endl; }}void main(){ print();}算法应该不够好,但是可以实现了~-~
回复

使用道具 举报

千问 | 2007-12-2 08:32:23 | 显示全部楼层
while(条件)
{ 语句1;
语句2;
....
}是先判断条件是否成立,成立则执行循环体(即是语句);而do 语句;while(条件);是先执行循环体(语句)1次,再判断条件是否成立...for(i=0;i<100;i++) sum=sum+i; (这里的i<100是循环条件 语句;来看这条语句的执行过程: 1.先求解表达式 i=0(只执行1次) 2.求解表达式 i<100时为真,执行 sum=sum+i3.执行1次 i++, 4.循环 2到3步;知道 i=100时退出循环(即 条件为假);5.循环结束,执行 sum=sum+i; 以后的语句.
回复

使用道具 举报

千问 | 2007-12-2 08:32:23 | 显示全部楼层
建议你多看看书吧....然后再写些程序试试....for(i=0;i<100;i++)sum=sum+i;来看这条语句的执行过程:1.先求解表达式 i=0,2.求解表达式 i<100,此时为真,执行 sum=sum+i, 然后执行下面的第3步..3.求表达式 i++,4.转回上面的第2步继续执行,此时变量 i=1,所以也为真,执行 sum=sum+i,程序就一直这样执行下去,当 i=100 时,i<100 不成立,所以结束循环,转到第5步,,5.循环结束,执行for下面的语句..下面再来看看while()和do...while()的区别:void main(){int i,sum=0;scanf("%d",i);while(i<=10)
{sum=sum+i;i++;}printf("%d",sum);}void main(){int i,sum=0;scanf("%d",i);do{ sum=sum+i;i++;}while(i<=10);printf("%d",sum);}分别运行这两个程序:输入i=1,结果都是sum=55;输入i=11,结果为:while()语句,sum=0;do..while()语句,sum=11;while()是先判断条件是否成立,再执行循环体;;而do..while()是先执行循环体,再判断条件是否成立...所以就有了上面的结果不同...这个例子是我从书上摘的,多写点这样的程序,然后单步执行程序...慢慢体会循环语句的执行过程吧...!!!~~
回复

使用道具 举报

千问 | 2007-12-2 08:32:23 | 显示全部楼层
http://www.pconline.com.cn/pcedu/videoedu/asp/0605/802418.html你把这个视频教程里的转的上和下看了,保你明白什么是循环。嵌套就是先循环里面的,循环玩一次,再循环外面的
回复

使用道具 举报

千问 | 2007-12-2 08:32:23 | 显示全部楼层
多写点这样的程序,然后单步执行程序...慢慢体会循环语句的执行过程吧...!!!~~
回复

使用道具 举报

千问 | 2007-12-2 08:32:23 | 显示全部楼层
我在这里只能告诉你!!设置断点来研究!!怎么运行的!!逐步测试!!就会明白了!!或者自己找一个简单的循环,在纸上逐步研究也可以!很简单的!!!你想复杂了!1.while可以进行不指定次数的循环;for一般知道循环次数下使用2.也就是循环次数确定的情况一般用for;循环次数不定的时候一般用while。我在这给你举个例子:intsum=0;inti;for(i=1;i<=10;i++){sum+=i;}***循环次数确定的情况一般用for这里为10次***intsum=0;inti=1;while(i<=100){sum+=i;i++;}do-while和while循环非常相似,区别在于表达式的值是在每次循环结束时检查而不是开始时。和正规的while循环主要的区别是do-while的循环语句保证会执行一次(表达式的真值在每次循环结束后检查),然而在正规的while循环中就不一定了(表达式真值在循环开始时检查,如果一开始就为FALSE则整个循环立即终止)。你定义的变量i变!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行