2014-02-28 37 views
1

爲什麼第一個工作而另一個不工作?循環不能正常工作併產生IndexOutOfBoundsException

for (int v=0; v< student1.size();v++) { 
    readLine = student1.get(v); 

    if (readLine.contains(sbB)){ 

     while(!(readLine1.contains(sbA) || readLine1.contains(sbC) || readLine1.contains(sbD))){ 

      readLine1 = student1.get(ii); 
      if(readLine1.contains("Homework ")){ 
       String[] tokens = readLine1.split(": "); st1marksHwB.add(tokens[1]);summHw = summHw + Integer.parseInt(tokens[1]);} 
      if (readLine1.contains("Exam ")){ 
       String[] tokens = readLine1.split(": "); st1marksExB.add(tokens[1]);summEx = summEx + Integer.parseInt(tokens[1]);;} 
      ii++;}}} 
double avSt1B = summHw*0.2 + summEx*0.8; summHw=0;summEx=0; 

//Stundent 1 Subject C--------------------------------------------------- 
for (int v=0; v< student1.size();v++) { 
     readLine = student1.get(v); 

    if (readLine.contains(sbC)){ 

     while(!(readLine1.contains(sbA) || readLine1.contains(sbB) || readLine1.contains(sbD))){ 

      readLine1 = student1.get(ii); 
       if(readLine1.contains("Homework ")){ 
        String[] tokens = readLine1.split(": "); st1marksHwC.add(tokens[1]);summHw = summHw + Integer.parseInt(tokens[1]);} 
       if (readLine1.contains("Exam ")){ 
        String[] tokens = readLine1.split(": "); st1marksExC.add(tokens[1]);summEx = summEx + Integer.parseInt(tokens[1]);;} 
       ii++;}}} 
double avSt1C = summHw*0.2 + summEx*0.8; summHw=0;summEx=0; 
+1

我一直在這裏夠久了,麻煩的人!伊瑪知道你在做這個家庭作業,是嗎?所以伊瑪問你清楚地指出了做了什麼。張貼他們堆棧跟蹤xD並格式化該代碼。 –

+0

打擾我?對我來說簡單的英語夥伴...我如何格式化代碼? – Heneko

+0

好吧,只需選擇您的所有代碼,然後按CTRL + K' xD –

回答

1

它,因爲你使用ii++增加第一for循環的ii值。 然後將最後增加的值ii傳遞給第二個for循環。

+0

當然是...乾杯隊友! – Heneko