하얀종이
208
2019-11-22 17:43:39
5
2849

for문 안에 if문 에러... 도와주세요~


안녕하세요 
자바초보인데 조금 어려운것들을 다루고 있다가 문제가 생겨서 질문합니다


floorList에 있는 객체들을 Object[] 배열에 담아서
jtable에 순차적으로 뿌려주려고 model.addrow()에 배열을 넘겨줬습니다 ...


List안에는 모두 다 String 형태입니다
값이 존재하고 if로 조건을 줬는데 다 else로 빠집니다....(결과값이 모두 다 :??가 붙어나옵니다...)


... 이런식으로 if분기하면 안되나요???

    java.util.List<Floor> floorList = dbBuildDetail.findFlrInfo(build);
    Object[] floorListArray = new Object[5]; 
      
      for (int i = 0; i < floorList.size(); i++) {
          
          System.out.println("값확인 : " + floorList.get(i).getMainAtchGBCD());
          
          if(floorList.get(i).getMainAtchGBCD() == "0") { 
            floorListArray[0] = ("주"+floorList.get(i).getMainAtchSeqNo()).toString();
          } if(floorList.get(i).getMainAtchGBCD() == "1") {
            floorListArray[0] = ("부"+floorList.get(i).getMainAtchSeqNo()).toString();
          } else {
            floorListArray[0] = ("??"+floorList.get(i).getMainAtchSeqNo()).toString();
          }
          System.out.println("check2 : "+floorListArray[0]);
          
          
          System.out.println("값확인2 : "+floorList.get(i).getFlrGBCD());
          
          if(floorList.get(i).getFlrGBCD() == "20") {
            floorListArray[1] = ("주"+floorList.get(i).getFlrNo()+"층").toString();
          } if(floorList.get(i).getFlrGBCD() == "10") {
            floorListArray[1] = ("지하"+floorList.get(i).getFlrNo()+"층").toString();
          } if(floorList.get(i).getFlrGBCD() == "30") {
            floorListArray[1] = ("옥탑"+floorList.get(i).getFlrNo()+"층").toString();
          } else {
            floorListArray[1] = ("??"+floorList.get(i).getFlrNo()+"층").toString();
          }
        System.out.println("check4 : "+floorListArray[1]);
          
        floorListArray[2] = floorList.get(i).getStrctNM();
        floorListArray[3] = floorList.get(i).getMainPurpsNM();
        floorListArray[4] = floorList.get(i).getArea();
        model1.addRow(floorListArray);
        System.out.println("------------------");

출력결과

값확인 : 0
check2 : ??1
값확인2 : 20
check4 : ??1층
------------------
값확인 : 0
check2 : ??1
값확인2 : 20
check4 : ??2층
------------------
0
  • 답변 5

  • 밤과라임
    3k
    2019-11-22 17:48:42
    if(floorList.get(i).getMainAtchGBCD() == "0") { 
                floorListArray[0] = ("주"+floorList.get(i).getMainAtchSeqNo()).toString();
              } if(floorList.get(i).getMainAtchGBCD() == "1") {
                floorListArray[0] = ("부"+floorList.get(i).getMainAtchSeqNo()).toString();
              } else {
                floorListArray[0] = ("??"+floorList.get(i).getMainAtchSeqNo()).toString();
              }

    두번째 if는 else if가 아니라 그냥 if인데 일부러 하신건가요??

    if문{}

    if문{}else{}로

    구성되어있는데 두번째 if문에서 첫번째 if문 결과를 오버라이딩하겠네요. 

  • spoon
    2k
    2019-11-22 17:49:40 작성 2019-11-22 17:50:00 수정됨

    if문에서 문자열 비교를 하시려는건가요?

    문자열 비교는 .equals("a") 를 사용하세요

  • spoon
    2k
    2019-11-22 17:52:18

    윗분말대로 if{} if{} else{}를 if{} else if{} else {} 로 바꾸셔야겠네요

  • 웹뿌시기
    149
    2019-11-22 18:00:12

    다른 부분들은 위에 분들이 답변 주신 듯하고 결과 값이 모두 else 로 빠지는건 문자열 비교를 못하고 있는 거겠네요. = 와 equals의 차이를 검색해보시면 도움 많이 되실 듯 합니다!

  • 하얀종이
    208
    2019-11-23 21:23:09
    아 어쩐지...
    답글달아주셔서 감사합니다!!
  • 로그인을 하시면 답변을 등록할 수 있습니다.