当前位置:编程学习 > JAVA >>

for循环的问题

for(int i=0;i<10;i++){
do(i);
}
每次循环do()里面的i都会加1;
有没有状况会让do里面的i都是0呢?
比如那个10,要是个变量,要是这个变量每次循环递减,会不会让这个for循环每次都从头开始呢
--------------------编程问答-------------------- 如果你在循环里面要定义i=0;就是死循环。
如果定义for(i=10;i>0;i--)会循环10次结束 --------------------编程问答-------------------- 楼主在逗我们玩? --------------------编程问答-------------------- 是这样的,今天看javascript书有个是这么说的
代码为:

function clearSelectBox(selectBox){

for(var i=0;len=selectBox.options.length;i<len;i++){
 selectBox.remove(i);
}
}
这个是书介绍选择框表单的删除摸个option项的方法。
selectBox.options.length是所有的option项数,最后他说,每次循环都是删除第一项,我不懂 --------------------编程问答-------------------- 看着头晕。。。。睡觉ing --------------------编程问答-------------------- 每次调用function clearSelectBox()进入for循环时,i都初始化为0。 --------------------编程问答-------------------- do(0)?????? --------------------编程问答--------------------
引用 3 楼 andayfour 的回复:
是这样的,今天看javascript书有个是这么说的
代码为:

function clearSelectBox(selectBox){

for(var i=0;len=selectBox.options.length;i<len;i++){
 selectBox.remove(i);
}
}
这个是书介绍选择框表单的删除摸个option项的方法。
selectBox.options.length是所有的option项数,最后他说,每次循环都是删除第一项,我不懂

这个你你那个循环不一样,这个循环每次是删除第一个元素,selectBox的大小每次都在变 --------------------编程问答--------------------
引用 3 楼 andayfour 的回复:
是这样的,今天看javascript书有个是这么说的
代码为:

function clearSelectBox(selectBox){

for(var i=0;len=selectBox.options.length;i<len;i++){
 selectBox.remove(i);
}
}
这个是书介绍选择框表单的删除摸个option项的方法。
selectBox.options.length是所有的option项数,最后他说,每次循环都是删除第一项,我不懂


你这个删除selectBox的每一个选项   他这个循环跟你举例子的不同  他这个每个option初始化的时候都已经有一个标识了  从0到length-1的标识  所以你删除了第一个 接着i++ 后 继续删除第二个(第一个option已经删除) 所以也是删除第一个option  --------------------编程问答--------------------
引用 7 楼 zheng511254216 的回复:
Quote: 引用 3 楼 andayfour 的回复:

是这样的,今天看javascript书有个是这么说的
代码为:

function clearSelectBox(selectBox){

for(var i=0;len=selectBox.options.length;i<len;i++){
 selectBox.remove(i);
}
}
这个是书介绍选择框表单的删除摸个option项的方法。
selectBox.options.length是所有的option项数,最后他说,每次循环都是删除第一项,我不懂

这个你你那个循环不一样,这个循环每次是删除第一个元素,selectBox的大小每次都在变

这种做法还是比较常见的,i每次都是零,leng每次都是变化的,第一次删除第一个元素后,第二个元素就成了第一个 元素,而你说的for(int i=0;i<10;i++)里面,条件i<10  10是不变的,LZ还有什么疑问吗? --------------------编程问答--------------------
int sum=10;
int c=0;
for(int i=0;c=sum;i<c;i++){
do(i);
sum--;
}
--------------------编程问答--------------------
引用 9 楼 qiyejunlintian 的回复:
Quote: 引用 7 楼 zheng511254216 的回复:

Quote: 引用 3 楼 andayfour 的回复:

是这样的,今天看javascript书有个是这么说的
代码为:

function clearSelectBox(selectBox){

for(var i=0;len=selectBox.options.length;i<len;i++){
 selectBox.remove(i);
}
}
这个是书介绍选择框表单的删除摸个option项的方法。
selectBox.options.length是所有的option项数,最后他说,每次循环都是删除第一项,我不懂

这个你你那个循环不一样,这个循环每次是删除第一个元素,selectBox的大小每次都在变

这种做法还是比较常见的,i每次都是零,leng每次都是变化的,第一次删除第一个元素后,第二个元素就成了第一个 元素,而你说的for(int i=0;i<10;i++)里面,条件i<10  10是不变的,LZ还有什么疑问吗?

我想问的是在循环的时候,i不应该是递增的嘛吗?
第一次进去删除第0个,然后i变为1,length-1;然后不应该是删除第1个的吗 --------------------编程问答--------------------
引用 11 楼 andayfour 的回复:
Quote: 引用 9 楼 qiyejunlintian 的回复:

Quote: 引用 7 楼 zheng511254216 的回复:

Quote: 引用 3 楼 andayfour 的回复:

是这样的,今天看javascript书有个是这么说的
代码为:

function clearSelectBox(selectBox){

for(var i=0;len=selectBox.options.length;i<len;i++){
 selectBox.remove(i);
}
}
这个是书介绍选择框表单的删除摸个option项的方法。
selectBox.options.length是所有的option项数,最后他说,每次循环都是删除第一项,我不懂

这个你你那个循环不一样,这个循环每次是删除第一个元素,selectBox的大小每次都在变

这种做法还是比较常见的,i每次都是零,leng每次都是变化的,第一次删除第一个元素后,第二个元素就成了第一个 元素,而你说的for(int i=0;i<10;i++)里面,条件i<10  10是不变的,LZ还有什么疑问吗?

我想问的是在循环的时候,i不应该是递增的嘛吗?
第一次进去删除第0个,然后i变为1,length-1;然后不应该是删除第1个的吗

不好意思没有仔细看,你给的例子for(var i=0;len=selectBox.options.length;i<len;i++)这个里面怎么三个分号,你是不是看错啦。应该没有i++吧,你确定这个能正常运行。 --------------------编程问答--------------------
引用 12 楼 qiyejunlintian 的回复:
Quote: 引用 11 楼 andayfour 的回复:

Quote: 引用 9 楼 qiyejunlintian 的回复:

Quote: 引用 7 楼 zheng511254216 的回复:

Quote: 引用 3 楼 andayfour 的回复:

是这样的,今天看javascript书有个是这么说的
代码为:

function clearSelectBox(selectBox){

for(var i=0;len=selectBox.options.length;i<len;i++){
 selectBox.remove(i);
}
}
这个是书介绍选择框表单的删除摸个option项的方法。
selectBox.options.length是所有的option项数,最后他说,每次循环都是删除第一项,我不懂

这个你你那个循环不一样,这个循环每次是删除第一个元素,selectBox的大小每次都在变

这种做法还是比较常见的,i每次都是零,leng每次都是变化的,第一次删除第一个元素后,第二个元素就成了第一个 元素,而你说的for(int i=0;i<10;i++)里面,条件i<10  10是不变的,LZ还有什么疑问吗?

我想问的是在循环的时候,i不应该是递增的嘛吗?
第一次进去删除第0个,然后i变为1,length-1;然后不应该是删除第1个的吗

不好意思没有仔细看,你给的例子for(var i=0;len=selectBox.options.length;i<len;i++)这个里面怎么三个分号,你是不是看错啦。应该没有i++吧,你确定这个能正常运行。

打错了for(var i=0,len=selectBox.options.length;i<len;i++)是这样
因为这个len每次会变,我认为的是i会递增。然后书上说这个函数是每次循环移除第一个。所以我认为书中的意思是for循环每次都会把i再赋值为0;这就颠覆我以前的想法 --------------------编程问答-------------------- 哈哈,如果想都为0,直接里面DO(0)即可啦,感情是逗我们玩的。 --------------------编程问答-------------------- --------------------编程问答--------------------
引用 13 楼 andayfour 的回复:
Quote: 引用 12 楼 qiyejunlintian 的回复:

Quote: 引用 11 楼 andayfour 的回复:

Quote: 引用 9 楼 qiyejunlintian 的回复:

Quote: 引用 7 楼 zheng511254216 的回复:

Quote: 引用 3 楼 andayfour 的回复:

是这样的,今天看javascript书有个是这么说的
代码为:

function clearSelectBox(selectBox){

for(var i=0;len=selectBox.options.length;i<len;i++){
 selectBox.remove(i);
}
}
这个是书介绍选择框表单的删除摸个option项的方法。
selectBox.options.length是所有的option项数,最后他说,每次循环都是删除第一项,我不懂

这个你你那个循环不一样,这个循环每次是删除第一个元素,selectBox的大小每次都在变

这种做法还是比较常见的,i每次都是零,leng每次都是变化的,第一次删除第一个元素后,第二个元素就成了第一个 元素,而你说的for(int i=0;i<10;i++)里面,条件i<10  10是不变的,LZ还有什么疑问吗?

我想问的是在循环的时候,i不应该是递增的嘛吗?
第一次进去删除第0个,然后i变为1,length-1;然后不应该是删除第1个的吗

不好意思没有仔细看,你给的例子for(var i=0;len=selectBox.options.length;i<len;i++)这个里面怎么三个分号,你是不是看错啦。应该没有i++吧,你确定这个能正常运行。

打错了for(var i=0,len=selectBox.options.length;i<len;i++)是这样
因为这个len每次会变,我认为的是i会递增。然后书上说这个函数是每次循环移除第一个。所以我认为书中的意思是for循环每次都会把i再赋值为0;这就颠覆我以前的想法

了然,其实那个i++没起实际作用,直接在外边var i=0 for(;i<selectBox.options.length;)这样就够了,不用每次都赋值,这个写法很随意的,应该没什么疑问了吧。 --------------------编程问答-------------------- 不知道是不是这样for(i=0;;){
do(i);
}
哈哈 --------------------编程问答-------------------- 直接弄个
while(size>0)
{
remove(0);
size=..
}
这样就好了 --------------------编程问答--------------------
引用 16 楼 qiyejunlintian 的回复:
Quote: 引用 13 楼 andayfour 的回复:

Quote: 引用 12 楼 qiyejunlintian 的回复:

Quote: 引用 11 楼 andayfour 的回复:

Quote: 引用 9 楼 qiyejunlintian 的回复:

Quote: 引用 7 楼 zheng511254216 的回复:

Quote: 引用 3 楼 andayfour 的回复:

是这样的,今天看javascript书有个是这么说的
代码为:

function clearSelectBox(selectBox){

for(var i=0;len=selectBox.options.length;i<len;i++){
 selectBox.remove(i);
}
}
这个是书介绍选择框表单的删除摸个option项的方法。
selectBox.options.length是所有的option项数,最后他说,每次循环都是删除第一项,我不懂

这个你你那个循环不一样,这个循环每次是删除第一个元素,selectBox的大小每次都在变

这种做法还是比较常见的,i每次都是零,leng每次都是变化的,第一次删除第一个元素后,第二个元素就成了第一个 元素,而你说的for(int i=0;i<10;i++)里面,条件i<10  10是不变的,LZ还有什么疑问吗?

我想问的是在循环的时候,i不应该是递增的嘛吗?
第一次进去删除第0个,然后i变为1,length-1;然后不应该是删除第1个的吗

不好意思没有仔细看,你给的例子for(var i=0;len=selectBox.options.length;i<len;i++)这个里面怎么三个分号,你是不是看错啦。应该没有i++吧,你确定这个能正常运行。

打错了for(var i=0,len=selectBox.options.length;i<len;i++)是这样
因为这个len每次会变,我认为的是i会递增。然后书上说这个函数是每次循环移除第一个。所以我认为书中的意思是for循环每次都会把i再赋值为0;这就颠覆我以前的想法

了然,其实那个i++没起实际作用,直接在外边var i=0 for(;i<selectBox.options.length;)这样就够了,不用每次都赋值,这个写法很随意的,应该没什么疑问了吧。

i的初始值为0,然后下一次循环应该是1,len应该-1;不懂你说的i++不起作用是什么意思; --------------------编程问答--------------------
引用 19 楼 andayfour 的回复:
Quote: 引用 16 楼 qiyejunlintian 的回复:

Quote: 引用 13 楼 andayfour 的回复:

Quote: 引用 12 楼 qiyejunlintian 的回复:

Quote: 引用 11 楼 andayfour 的回复:

Quote: 引用 9 楼 qiyejunlintian 的回复:

Quote: 引用 7 楼 zheng511254216 的回复:

Quote: 引用 3 楼 andayfour 的回复:

是这样的,今天看javascript书有个是这么说的
代码为:

function clearSelectBox(selectBox){

for(var i=0;len=selectBox.options.length;i<len;i++){
 selectBox.remove(i);
}
}
这个是书介绍选择框表单的删除摸个option项的方法。
selectBox.options.length是所有的option项数,最后他说,每次循环都是删除第一项,我不懂

这个你你那个循环不一样,这个循环每次是删除第一个元素,selectBox的大小每次都在变

这种做法还是比较常见的,i每次都是零,leng每次都是变化的,第一次删除第一个元素后,第二个元素就成了第一个 元素,而你说的for(int i=0;i<10;i++)里面,条件i<10  10是不变的,LZ还有什么疑问吗?

我想问的是在循环的时候,i不应该是递增的嘛吗?
第一次进去删除第0个,然后i变为1,length-1;然后不应该是删除第1个的吗

不好意思没有仔细看,你给的例子for(var i=0;len=selectBox.options.length;i<len;i++)这个里面怎么三个分号,你是不是看错啦。应该没有i++吧,你确定这个能正常运行。

打错了for(var i=0,len=selectBox.options.length;i<len;i++)是这样
因为这个len每次会变,我认为的是i会递增。然后书上说这个函数是每次循环移除第一个。所以我认为书中的意思是for循环每次都会把i再赋值为0;这就颠覆我以前的想法

了然,其实那个i++没起实际作用,直接在外边var i=0 for(;i<selectBox.options.length;)这样就够了,不用每次都赋值,这个写法很随意的,应该没什么疑问了吧。

i的初始值为0,然后下一次循环应该是1,len应该-1;不懂你说的i++不起作用是什么意思;


我从新说一下
一个有顺序的容器有0,1,2,3,4 这5个元素
然后上面的循环在第一次进去的时候删了第0个,也就是0
所以容器还剩下1,2,3,4
现在排序的话数字1是第0个,数字2是第1个,数字3是第2个,数字4是第3个
再次循环i应该等于1了吧,但是len=selectBox.options.length;len现在就是4
再做删除操作,应该删的是第1个也就是数字2;也就是没去删除数字1
我不知道是不是我理解错误,但是我就是这么想的


--------------------编程问答-------------------- 呵呵楼主把自己绕进去了,既然你要求每次删除第一项,而i++之后会出现无法删除第一项的情况那,还要i++干嘛呢,这个{ 
function clearSelectBox(selectBox){
for(var i=0;len=selectBox.options.length;i<len;i++){
 selectBox.remove(i);
}
}
}在java上相当于for(int i=0;i<selectBox.options.length;i++){
do(i)
}其中这玩意selectBox.options.length是不变的,它要是变了你删不完所有记录,即使能删完得多写些东西逻辑变复杂了,不划算;
而它要是变的话最简单的写法for(true){do(0)};当然是死循环.
改写一下
boolean f=true;
int i=selectBox.options.length;
for(f){
do(0);
if(i<=0){f=false;}
}

  --------------------编程问答-------------------- 被lz忽悠了,呵呵 --------------------编程问答--------------------
引用 20 楼 andayfour 的回复:
Quote: 引用 19 楼 andayfour 的回复:

Quote: 引用 16 楼 qiyejunlintian 的回复:

Quote: 引用 13 楼 andayfour 的回复:

Quote: 引用 12 楼 qiyejunlintian 的回复:

Quote: 引用 11 楼 andayfour 的回复:

Quote: 引用 9 楼 qiyejunlintian 的回复:

Quote: 引用 7 楼 zheng511254216 的回复:

Quote: 引用 3 楼 andayfour 的回复:

是这样的,今天看javascript书有个是这么说的
代码为:

function clearSelectBox(selectBox){

for(var i=0;len=selectBox.options.length;i<len;i++){
 selectBox.remove(i);
}
}
这个是书介绍选择框表单的删除摸个option项的方法。
selectBox.options.length是所有的option项数,最后他说,每次循环都是删除第一项,我不懂

这个你你那个循环不一样,这个循环每次是删除第一个元素,selectBox的大小每次都在变

这种做法还是比较常见的,i每次都是零,leng每次都是变化的,第一次删除第一个元素后,第二个元素就成了第一个 元素,而你说的for(int i=0;i<10;i++)里面,条件i<10  10是不变的,LZ还有什么疑问吗?

我想问的是在循环的时候,i不应该是递增的嘛吗?
第一次进去删除第0个,然后i变为1,length-1;然后不应该是删除第1个的吗

不好意思没有仔细看,你给的例子for(var i=0;len=selectBox.options.length;i<len;i++)这个里面怎么三个分号,你是不是看错啦。应该没有i++吧,你确定这个能正常运行。

打错了for(var i=0,len=selectBox.options.length;i<len;i++)是这样
因为这个len每次会变,我认为的是i会递增。然后书上说这个函数是每次循环移除第一个。所以我认为书中的意思是for循环每次都会把i再赋值为0;这就颠覆我以前的想法

了然,其实那个i++没起实际作用,直接在外边var i=0 for(;i<selectBox.options.length;)这样就够了,不用每次都赋值,这个写法很随意的,应该没什么疑问了吧。

i的初始值为0,然后下一次循环应该是1,len应该-1;不懂你说的i++不起作用是什么意思;


我从新说一下
一个有顺序的容器有0,1,2,3,4 这5个元素
然后上面的循环在第一次进去的时候删了第0个,也就是0
所以容器还剩下1,2,3,4
现在排序的话数字1是第0个,数字2是第1个,数字3是第2个,数字4是第3个
再次循环i应该等于1了吧,但是len=selectBox.options.length;len现在就是4
再做删除操作,应该删的是第1个也就是数字2;也就是没去删除数字1
我不知道是不是我理解错误,但是我就是这么想的



再次循环,var i=0,i不是1还是删除第0个也就是1;没次都删除第0个,知道length=0,i-0条件不符,就不在删除。。。。我就愁了。 --------------------编程问答--------------------
引用 5 楼 dafengche2k8 的回复:
每次调用function clearSelectBox()进入for循环时,i都初始化为0。

但是在for循环里面i是递增 啊
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,