添加歌曲到第三个时出问题了
来源:1-3 详细设计
qq_青鱼_1
2018-09-18 09:15:56
/**将歌曲添加到播放列表
* @param song
*/
public void addToPlayList(Song song) {
System.out.println("请输入要添加的歌曲的数量:");
int n=sc.nextInt();
for(int i=0;i<n;i++) {
boolean flag=true;
System.out.println("请输入第"+(i+1)+"首歌曲:");
while(flag) {
System.out.println("请输入歌曲的id:");
String str=sc.next();
if(musicList.size()==0) {
song.setId(str);
flag=false;
}else {
for(int j=0;j<musicList.size();j++) {
flag=true;
if(str.equals(musicList.get(j).getId())) {
System.out.println("该歌曲编号已存在,请重新输入!");
break;
}else {
song.setId(str);
flag=false;
}
}
}
}
while(!flag) {
System.out.println("请输入歌曲的名称:");
String str1=sc.next();
if(musicList.size()==0) {
song.setName(str1);
flag=true;
}else {
for(int j=0;j<musicList.size();j++) {
flag=false;
if(str1.equals(musicList.get(j).getName())) {
System.out.println("该歌曲名称已存在,请重新输入!");
break;
}else {
song.setName(str1);
flag=true;
}
}
}
}
System.out.println("请输入演唱者:");
song.setSinger(sc.next());
musicList.add(song);
}
}
2回答
你得遍历完歌曲才能知道是不是存在吧,所以你这里的else内的代码,应该放在for的外面。如果存在的话直接退出方法了,只有不存在才会走到for的外层。
好帮手慕雪
2018-09-18
不需要判断歌曲的名称,只要判断id就可以了,实现也是这样子的,同一首歌,可能有不同的演唱者。另:你说的出问题,出什么问题了,没明白。
相似问题