求教大师for循环问题
for (int i = 0; i < 8; i++)
{
strbuilder.Append("<tr><td>" + arrayList[i] + "</td><td>" + arrayList[i++] + "</td><td>" + arrayList[i++] + "</td><td>" + arrayList[i++] + "</td></tr>");
}
return strbuilder;
如果数组元素为1,2,3,4,5,6,7,8
返回的是1,1,2,3
5,5,6,7
求指教!!!谢谢
[解决办法]
strbuilder.Append("<tr><td>" + arrayList[i] + "</td><td>" + arrayList[++i] + "</td><td>" + arrayList[++i] + "</td><td>" + arrayList[++i] + "</td></tr>");
[解决办法]
应该要++i
[解决办法]
LZ你,你arrayList[i++]取值的时候 i的值已经被你改变了,下一次循环的时候i的值会在这个基础上累加的,
你这样取值就可以看到变化
for (int i = 0; i < 8; i++) { string a= arrayList[i].ToString(); string b= arrayList[i++].ToString(); string c= arrayList[i++].ToString(); string d= arrayList[i++].ToString(); ////////然后就是拼接 }
[解决办法]
请注意 i++ 和 ++i的区别在于 : 前者会先做操作,后自增; 后者是先自增,再做操作。
[解决办法]
arraylist[i++],在表达式[i++]中,貌似是先取i的值,然后再++,于是stringbuilder中也就等同于arraylist[0],arraylist[0],arraylist[1],arraylist[2],此时第一次循环结束,其中最后一个arraylist[i++]之后i已变为3,在经过for中的i++后i已等于4,于是第二次循环所列的四个为arraylist[4],arraylist[4],arraylist[5],arraylist[6]第二次循环后i等于7,在经过for中的i++后i为8,循环结束。