JS循环

JS循环基础知识

【循环结构的执行步骤】

1,声明循环变量;
2,判断循环条件;
3,执行循环体操作;
4,更新循环变量;
然后,循环执行2-4,直到条件不成立时,跳出循环;

while循环()中的表达式,运算结果可以是各种类型。但是最终都会转化为真假,转换规则同if结构:

①boolean:true为真,flase为假;
②string:空字符串为假,所有非空字符串为真;
③number:0为假,一切非0数字为真;
④null,undefined,NaN全为假;
⑤object:全为真;

while循环特点:先判断,再执行;
do-while循环特点:先执行,再判断;即使初始条件不成立,do-while循环也至少执行一次;

【for循环】

1,for循环有三个表达式:①声明循环变量;②判断循环条件;③更新循环变量;
三个表达式之间,用;分隔;
for循环三个表达式都可以省略,但是两个缺一不可;

2,for循环的执行特点:先判断,再执行;与while相同;

3,for循环三个表达式都可以有多部分组成:第二部分多个判断条件用&& ||链接,第一三部分用逗号分隔;

【循环控制语句】

1,break:跳出本层循环,继续执行循环后面的语句。
如果循环有多层嵌套,则break只能跳出一层。
2,continue:跳过本次循环剩余的代码,继续执行下一次循环。
① 对于for循环,continue之后执行的语句,是循环变量更新语句i++;
②对于while,do-while循环,continue之后执行的语句,是循环条件判断;
因此,使用这两个循环时,必须将continue放到i++之后使用,否则,continue将跳过i++导致死循环。
3,return:只能出现在函数体里 function

简单的例子:

运行结果:

一般的例子:

复杂的例子:

需求描述:假设一个简单的ATM机的取款过程为:
 首先提示用户输入密码(password),假设默认密码为111111,最多只能输入3次,
 超过3次则提示用户“密码错误,请取卡”,结束交易。

如果用户密码正确,再提示用户选择金额(amount),
“请输入0到6中任意数字选择对应钱数:0?手动输入金额,1?100元, 2?300元,
3?500元, 4?1000元, 5?3000元, 6?5000元”。

输入数字如果错误,提示“输入错误,是否继续 Y/N”,选择Y重新提示输入钱数编号,
选择N提示“输入错误,请取卡!”。选择数字为1到6,打印对应钱数,
并提示“是否继续 Y/N”。选择数字0,ATM机只能输出100元纸币,
自定义钱数要求最低为100元,最高为1000元。如果用户输入的金额符合上述要求,
则打印输出用户取的钱数,并提示“取款完成,是否继续Y/N”;否则输出一句话“金额错误,
是否继续 Y/N”,如果用户输入Y,提示用户重新选择取款金额,如果用户输入 N,
打印“交易取消,请取卡!”

ps:取款成功后,应该提示用户是否继续,总取款金额不能超过2万。

【解题思路】

1、验证密码

① 密码正确,继续执行下面操作;
 ② 密码错误3次,return;

2、取款操作。全部包含在 while循环内部。

① 提示选择编号;

② 根据编号,给money赋值。用switch结构实现。
1~6:直接给money赋固定值,0:手动赋值操作;
③ 验证取款是否成功。money-本次取款金额,moneySum-本次取款之前的总金额
 判断moneySum+money是否>20000,3种情况:
 >2000 本次取款超额,但moneySum之前并不足20000,继续下次循环;
 =2000 取完本次money后,刚好满额。money可以加到sum上,然后return;
 <2000 取完本次money后,仍未上限。money可以加到sum上,继续下次循环。
 ④ 验证是否继续,while-if结构实现,有3种情况:
 Y/y 将小循环break,继续执行取款大循环;
 N/n 直接return,停止所有操作;
 其他 continue,继续执行小循环,重复输入Y/N

程序代码:

时间: 2024-08-15 07:05:53

JS循环的相关文章

Handlebars.js循环中索引(@index)使用技巧(访问父级索引)

使用Handlebars.js过程中,难免会使用循环,比如构造数据表格.而使用循环,又经常会用到索引,也就是获取当前循环到第几次了,一般会以这个为序号显示在页面上. Handlebars.js中获取循环索引很简单,只需在循环中使用{{@index}}即可. 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <META http-equiv=Content-Type content="text/html; charset=utf-

JS 循环遍历JSON数据 分类: JS技术 JS JQuery 2010-12-01 13:56 43646人阅读 评论(5) 收藏 举报 jsonc JSON数据如:{&amp;quot;options&amp;quot;:&amp;quot;[{

JS 循环遍历JSON数据 分类: JS技术 JS JQuery2010-12-01 13:56 43646人阅读 评论(5) 收藏 举报 jsonc JSON数据如:{"options":"[{/"text/":/"王家湾/",/"value/":/"9/"},{/"text/":/"李家湾/",/"valu e/":/"10

js循环GridView判断CheckBox是否全部未选中

function isQueryPriceReplyProduct() { var gridItem; var itemIndex = 0;  var IDS = ''; while (gridItem = dgQueryPriceReplyProduct.Table.GetRow(itemIndex)) {   itemIndex++;   if (!gridItem.Cells[0].Value) { continue; } IDS += gridItem.Cells[1].Value + 

JS数组+JS循环题

先看JS循环作业题: 一.一张纸的厚度是0.0001米,将纸对折,对折多少次厚度超过珠峰高度8848米 <script type="text/javascript"> var a=0.0001; var i=0; while(a<=8848){ a=a*2; i++; } alert(i); </script> 这个题主要考察的点:1.当要求得到什么效果或者多少次结束时,我们可以考虑运动while语句是比较方便的: 2.对折一次厚度要*2,所以下次折叠后,

js循环绑定事件

在js中,用循环来为一对元素队列的元素绑定事件,是一个常见的问题. 通常进入误区的新人,都会这么写代码: (假设元素队列为o,默认使用jQuery) //error method var o =$('.blockHead'); for(var i=0; i<o.length; i++){ o[i].onclick = function(){ function(i){ alert(i); } } } 当然这种情况下,你会发现每个元素点击运行时,显示的 i值 都是 o.length-1: 因为js的

Data层相关问题 &amp; JS循环取值

第一次写博客,里面是自己工作中碰到的问题及总结的知识点,便于自己以后回顾,技术大牛们请直接忽略这篇文章,也希望能帮助到想我这样的小白! Data层相关问题总结: 1. 代码管理用的是 VSS 2005: 改好程序后,必须要重新生成下:(注意文件之间的引用关系的顺序),程序改的是对的,也在本地保存了,断点调试的时候还是之前没有改的代码,郁闷了好久.别的引用没有更新,害惨我了. 第一次碰到,不了解,白白浪费了两天的时间,两天的时间,还破坏了我周末的心情! 2. SQL语句写好后,注意起中英文之间的输

JS 循环遍历JSON数据

JSON数据如:{"options":"[{/"text/":/"王家湾/",/"value/":/"9/"},{/"text/":/"李家湾/",/"value/":/"10/"},{/"text/":/"邵家湾/",/"value/":/"13/

js循环POST提交添加辅助单位

1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title>js循环POST提交添加辅助单位</title> 6 <s

js循环处理后台返回的json数组

1 <script type="text/javascript"> 2 function gongdan_search(elm){ 3 var dangqian_value=$(elm).val(); 4 if(dangqian_value){ 5 $.ajax({ 6 url:'__URL__/order_infos_list_search', 7 type:'post', 8 data:{dangqian_value:dangqian_value}, 9 success