Jakolcz
Jakolcz

Reputation: 564

For loop not incrementing properly

I have this code but when the else branch executes, the i is not incremented and I can't find out why...

while(rs.next()){
  tableAktivityBuilder.append("<tr><td><input type=\"text\" class=\"rowAktivita\" value=\""+rs.getString("name")+"\"/></td><td>");
  StringBuilder tmpBuilder = new StringBuilder("<select class=\"course\"><option value=\"-1\" type=\"\"></option>");
  for(int i = 0; i < prurezove.length+odborne.length; i++){
    int idKompetence = rs.getInt("id_kompetence");
    if(rs.getString("typ_kompetence").equalsIgnoreCase("p") && i < prurezove.length){
        if(idKompetence == prurezoveIds[i]){
          tmpBuilder.append("<option value=\""+idKompetence+"\" type=\"p\" selected=\"selected\">"+prurezove[i]+"</option>");
        }else{
          tmpBuilder.append("<option value=\""+idKompetence+"\" type=\"p\">"+prurezove[i]+"</option>");
       }
    }else{
      log.info("kompetence = o");
      log.info("i = "+i);
      int awa = prurezove.length+odborne.length;
      log.info(""+awa);
      if(idKompetence == odborneIds[x]){
          tmpBuilder.append("<option value=\""+idKompetence+"\" type=\"o\" selected=\"selected\">"+odborne[x]+"</option>");
      }else{
          tmpBuilder.append("<option value=\""+idKompetence+"\" type=\"o\">"+odborne[x]+"</option>");
      }
      x++;
    }
  }
  tableAktivityBuilder.append(tmpBuilder);
  tableAktivityBuilder.append("</select></td><td>");
  if(rs.getInt("cena") != 0){
    tableAktivityBuilder.append(rs.getInt("cena"));
  }
  tableAktivityBuilder.append("</td></tr>");
}

the log output is

kompetence = o
i = 4
5
kompetence = o
i = 4
5

Thanks for any help

Upvotes: 0

Views: 213

Answers (1)

Alex Suo
Alex Suo

Reputation: 3119

It's just your out while loop executed twice and your inner loop always reach else {} when i == 4 and then exit.

Upvotes: 3

Related Questions