2012-02-02 3 views
0

내가하려는 일은 웹 사이트에서 2 개의 재생 목록을 얻는 것입니다. 그러나 내가 목록을 얻을 때 그것은 좋은 목록으로 첫 번째 목록을 채 웁니다. 두 번째로는 두 번째로 두 번째를 추가하고 두 번째를 추가합니다 ... 이유는 없습니다.스위치 케이스 설명문에 문제가 있습니다.

conn = (HttpURLConnection) url.openConnection(); 
BufferedReader rd = new BufferedReader(
       new InputStreamReader(conn.getInputStream())); 
parseMusic(rd,choice); 
conn.disconnect(); 

와 내가 2 재생 목록 (안 동시)에 넣어하려고 HIER : 그래서 나는 그것을 얻을. 그래서 나는 그것을 2 번이나 부른다. 웹 사이트의 질의는 라이트 목록을 반환합니다. 그것은 PLchoice와 함께 그리고 처음에는 두 번째 경우에 .. thaths 왜 두 번째 목록 라이트를 얻고 첫 번째는 두 번째 + 첫 번째 .. 왜?

private void parseMusic(BufferedReader reader,int PLchoice) throws IOException { 
    String line=null; 
    while((line = reader.readLine()) != null) { 
     String[] values = line.split(","); 

     switch (PLchoice){ 
     case 1: { 
      if(musicList != null) { 
       if(values[0].equals("null")) { 
        Log.e("ERROR", "no music found!"); 
       } else { 
        int id = Integer.parseInt(values[0]); 
        String filename = values[1]; 

        musicList.add(new Mp3(id, filename)); 
       } 
      } else { 
       Log.e("ERROR", "MusicList = null"); 
      } 
     } 
     case 3:{ 
      if(secondList != null) { 
       if(values[0].equals("null")) { 
        Log.e("ERROR", "no music found!"); 
       } else { 
        int id = Integer.parseInt(values[0]); 
        String filename = values[1]; 

       secondList.add(new Mp3(id, filename)); 
       } 
      } else { 
       Log.e("ERROR", "MusicList = null"); 
       } 
      } 
     }   
    } 
    reader.close(); 
      Log.e("playList","MP3 file muslist= "+musicList); 
    Log.e("playList added","MP3 file secondList= "+secondList); 
} 

답변

1

각각의 경우에 대해 break (대괄호도 필요 없음)이 필요합니다.

Java Switch Documentation

+0

shoet ... 나는 ... 나를 보았다. stuppid of me! – Hia

0

이것은 스위치 위해 fallthrough라고하는 것이다. 각 케이스의 본문이 끝나면 break; 행을 가져야합니다. 그렇지 않으면 일치하는 대소 문자 (다른 경우도 포함)의 모든 코드가 실행됩니다.