嵌套for循环和参数值
问题描述:
我一直在解决以下代码,并无法弄清为什么没有在ArrayList unavDays中显示出来。任何帮助表示赞赏。嵌套for循环和参数值
我测试单独的块:
- 第一if语句的计算结果为 '真'
- unavTimesConv.size()/ 2 == 1
- unavDaysTemp [0] .equals(” M“)=='true'
我知道如果没有完整的图片,代码背后的想法可能很难理解。我希望我忽略了一个小的语法错误。是0,你从0
迭代i
直到
List<Integer> unavTimesConv = new ArrayList<Integer>();
那么显然unavTimesConv.size()
= 0
,因为在创建的默认构造函数列表的大小而定:感谢
List<Integer> unavTimesConv = new ArrayList<Integer>();
List<String> unavDays = new ArrayList<String>();
String[] unavDaysTemp = request.getParameterValues("days");
if(request.getParameterValues("days") != null)
{
for(int i = 0; i < (unavTimesConv.size()/2); i++)
{
for(int j = (7*i); j < (7*(i+1)); j++)
{
if(unavDaysTemp[j].equals("M"))
{
unavDays.add("M");
}
else if(unavDaysTemp[j].equals("T"))
{
for(int k = 0; k < 1; k++) {unavDays.add(null);}
unavDays.add("T");
}
else if(unavDaysTemp[j].equals("W"))
{
for(int k = 0; k < 2; k++) {unavDays.add(null);}
unavDays.add("W");
}
else if(unavDaysTemp[j].equals("TH"))
{
for(int k = 0; k < 3; k++) {unavDays.add(null);}
unavDays.add("TH");
}
else if(unavDaysTemp[j].equals("F"))
{
for(int k = 0; k < 4; k++) {unavDays.add(null);}
unavDays.add("F");
}
else if(unavDaysTemp[j].equals("S"))
{
for(int k = 0; k < 5; k++) {unavDays.add(null);}
unavDays.add("S");
}
else {unavDays.add("Something busted");}
}
}
}
答
所以你的列表创建为0/2=0
,那么任何迭代都不会发生,因为明显的是
0 < 0 == false
我想你刚才漏掉了一些测试
unavTimesConv.size()/2
它的实际尺寸在进入该周期
井的时间是0,'unavTimesConv'最初是空的时;所以'i'循环永远不会被输入,因为'0
OP声称它已经过测试......测试必须有错误。 'unavTimesConv.size()/ 2 == 1'不正确。 –