对while循环条件的for循环条件的疑问

对while循环条件的for循环条件的疑问


使用for循环做这个题,把a.length赋值给len的时候,执行的时候就不循环了,输入一个值就跳出循环,不赋值给len,直接用a.length的时候就没问题,这是怎么回事啊,代码如下

var a=[],len=a.length;
                  
       for(var i=0;i<=len;i++){
           sum=prompt("输入员工工资");
           a[i]=sum;
          if(a[i]=="退出"){
           len-=1;
            break;
         
          }
           
       }
        document.write(a);

使用while的时候,用和for循环一样的循环条件,也会跳出循环,只有一个值,看了别的问题写的while条件是sum!=“退出”,但是while不能用<a.length为条件吗,代码如下

var a=[],i=0;
			while(i<=a.length){
				sum=prompt("请输入工资");
				a[i]=sum;
				i++;
				if(a[i]="退出"){
					break;
				}
			}
			document.write(a);


正在回答

登陆购买课程后可参与讨论,去登陆

1回答

for循环的问题:

1、如果在for循环外面定义了数组的长度:

http://img1.sycdn.imooc.com//climg/5bfe34350001aa3505560177.jpg

现在a数组里面没有内容,len的值为 0,所以循环一次就满足了i<=len这个条件,就会停止循环。

2、如果在for循环中直接使用a.length,在数组内容不断改变的同时,数组的长度也会改变,所以可以正常执行。

while循环问题:

1、如果提前定义数组长度就和for循环的一样。

2、可以你这样判断,但是代码需要改动:

http://img1.sycdn.imooc.com//climg/5bfe360d0001cb3305040290.jpg

判断条件需要放在i++的前面,判断是否等于退出,要用两个等号,一个等号是赋值。最后将数组的长度减去1,否则包含‘退出’。

自己测试下,祝学习愉快!

  • 蛋蛋90斤 提问者 #1
    但是我在使用a.length的时候,一开始也是等于0,也是直接满足i<=a.length的,可是就不会停止循环
    2018-11-28 14:53:24
  • 好帮手慕星星 回复 提问者 蛋蛋90斤 #2
    如果在开始将.length的值赋值给len,即使数组的长度改变了,len的值也不会改变,所以输入一次就结束了循环。
    2018-11-28 14:56:10
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
前端小白入门系列课程
  • 参与学习           人
  • 提交作业       11218    份
  • 解答问题       36713    个

从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师