循环
来源:互联网 发布:session php注册示例 编辑:程序博客网 时间:2024/05/18 02:14
循环
1.循环的定义
有条件的重复同一件事情,每次做的事情不同,但是类似。
说的那么抽象我们来举个例子吧。
例子:我们都在食堂吃过饭吧,现在我们就以食堂大妈举个例子,但愿食堂大妈看不到这个例子。你们有没有观看食堂大妈打菜,食堂大妈打菜是不是只要你说要那个菜,她就会打给你,你的菜打完之后,大妈就给下一个人打菜。虽然都是打菜。,但是你们选的菜是不是不一样。这就是循环,重复打菜,虽然都是打菜,但是打的菜不同。
程序是为了解决实际问题,实际问题中存在着重复的问题,那么程序中也应该有相应的描述,这就是循环。
2.循环的好处
循环的好处是不能通过语言来描述的,那么我们就通过案例来说明循环的好处。
案例:求1到10的总和
var sum = 0; sum+=1; sum+=2; sum+=3; sum+=4; sum+=5; sum+=6; sum+=7; sum+=8; sum+=9; sum+=10; alert(sum);
上面计算从1到10的和,一共使用的12行代码,而且当你其中某一项写错了之后,就得不到正确的结果。而且这只是从1加到10,如果从1加到100,甚至1000呢,那你是不是要写102行,甚至1002行代码?这是不太真实的。
下面是使用循环的代码
var sum = 0; var i =1; while(i < 10){ sum+=i; i++; }
上面的代码就比较简洁,使用了5行代码,大大减少了我们的书写量,而且容错率较低。同时也实现了上面代码的功能,两者结果都一样。就算你是加到100,甚至是1000,他只需要把10改为100,就可以了。
既然我们初步了解了循环的好处,就让我们了解下while、do while和for循环,看一下他们有什么不同之处。
3.while循环
定义:当....则.......,当某个条件成立时,我们就重复做。
案例:
var sum = 0; var i =1; while(i < 10){ sum+=i; i++; } alert(sum);
就用上面的那个代码。
4.do while循环
定义:与while一样,但是也有不同。
案例:
var sum = 0; var i =1; do{ sum+=i; i++; }while(i < 10); alert(sum);
5.do while与while的不同
那么他们两的区别在哪呢?虽然他们都是需要判断的,但是他们的不同就在判断上面。
while是先判断在执行语句,do while是先执行后判断。
通过上面的语句理解,看上去是没什么不同。不都是判断和执行吗,就是顺序不一样。
没错,就是顺序不一样,才会导致他们两个不同。
下面就使用案例来看一下顺序的不同会导致怎么样的结果。
案例:输入一个数,求这个数到10的和
var p = Number(prompt("请输入一个自然数")); var sum = 0; while (p < 10){ sum += p; p++; } alert(sum);
var p = Number(prompt("请输入一个自然数")); var sum = 0; do{ sum += p; p++; }while (p < 10); alert(sum);
上面分别使用了while与do while,输入的数都是10,但是结果呢?
左边是while的,右边是do while的。结果完全不一样。
出现的原因就是判断与执行的顺序问题。现在都理解了吧。
6.for循环
for循环的格式一样。for( ){内容}
案例:也是求1到10的和
var sum = 0; for(var i = 1;i <= 10;i++){ sum += i; } alert(sum);
7.总结
循环的出现是为了帮我们解决一些不相同但类似的问题。
如果循环的条件只要不是一开始就为假的话,那么三个循环都是一样的结果。取决于你擅长哪一个,就使用哪一个,但是三个都要掌握。
循环的四个要点:
1.初始状态:初始值sum。
2.循环条件:i<=10;
3.循环体:sum+=i;
4.为下次循环做准备:i++;
每一个循环都可以这样分,我们可以把一个问题这样分开,然后我们就好写代码了。
- 循环
- 循环
- 循环
- 循环
- 循环
- 循环
- 循环
- 循环
- 循环
- 循环
- 循环
- 循环
- 循环
- 循环
- 循环
- 循环
- 循环
- 循环
- 【每日一题-10】求第K层节点与求数组中出现一半的数
- 程序员写的脚本
- 二叉查找树、平衡二叉树、红黑树、B-/B+树性能对比
- comm命令
- 基于Nsight Eclipse Edition的高斯滤波的实现(二)
- 循环
- LeetCode 122 Best Time to Buy and Sell Stock II
- 【数据结构】求二叉树中两个结点最近的公共祖先
- 抽象类、接口和内部类
- Matplotlib.pyplot 常用方法(二)
- 一条用来表示“思路非常乱。。。”的博客
- 等精度测频的原理和基于FPGA的实现
- 哈密顿绕行世界问题 HDU
- qduoj 65 again and again 字典树