2015-12-21 4 views
1

Я получил таблицу со значениями - Имя пользователя, маркой и компанией с деталями в таблицеLooping Логической ошибки

enter image description here

Теперь я пытаюсь перебирать петлю, чтобы напечатать имя пользователя с Маркой/Имя пользователя и компании.

Но когда я пытаюсь это в цикле, я не получаю правильный выход ..

public static void main(String arfs[]) 
{ 
    List company = new ArrayList(); 
    List brand = new ArrayList(); 
    List name = new ArrayList(); 

    try 
    { 
    Class.forName("com.mysql.jdbc.Driver"); 
    Connection con = DriverManager.getConnection("URL","root","root"); 
    Statement stmt = con.createStatement(); 
    ResultSet rs=stmt.executeQuery("select * from fashion"); 
    while(rs.next()) 
    { 
     name.add(rs.getString("Username")); 
     brand.add(rs.getString("Brand")); 
     company.add(rs.getString("Company")); 
    } 



    for(int i=0; i<name.size();i++) 
    { 
     if((name.get(i)!=null)&&(brand.get(i)!=null)) 
     { 
      System.out.println("----Brand------"); 
      System.out.println(brand.get(i)); 

     } 
     if((name.get(i)!=null)&&(company.get(i)!=null)) 
     { 
      System.out.println("----Company-----"); 
      System.out.println(company.get(i)); 
     } 

    } 


    } 
    catch(Exception e) 
    { 

    } 

} 

Когда я запускаю этот код, только марка печатается и не company..can кто-нибудь мне помочь вне..?

+0

Я вижу, что первые две компании являются «нулевыми». Таким образом, условие оценивается как 'false'. – Maroun

+0

Компания может быть нулевой в arraylist !!! – Parasu

+0

Можем ли мы увидеть фактический результат? –

ответ

2

Вы удаляете свое состояние. поле вашей компании равно null, поэтому условие «если» печатает что-либо.

for(int i=0; i<name.size();i++) 
    { 

      System.out.println("----Brand------"); 
      System.out.println(brand.get(i)); 
      System.out.println("----Company-----"); 
      System.out.println(company.get(i)); 

    } 
Смежные вопросы