break 放在if语句块之中和之后,运行的结果不一致,这是什么原因呢?
来源:2-2 添加和显示歌曲的方法
csm032
2019-12-29 18:38:35
添加歌曲一:
public void addToPlayList(Song song) {
boolean flag = false;
for (Song song1 : musicList) {
if(song1.equals(song)) {
flag=true;
}
break;
}
if(flag) {
System.out.println("该歌曲已经存在于播放列表张,添加失败!");
}else {
musicList.add(song);
}
}
添加歌曲二:
public void addToPlayList(Song song) {
boolean flag = false;
for (Song song1 : musicList) {
if(song1.equals(song)) {
flag=true;
break;
}
}
if(flag) {
System.out.println("该歌曲已经存在于播放列表张,添加失败!");
}else {
musicList.add(song);
}
}
这两种添加歌曲的方法运行结果并不一样,请问break放在if之外和之内的区别在哪里呢?
1回答
同学你好,break放在if判断之外,当循环第一遍时,则就运行到了break,就结束循环。而在break放在if判断之内,表示当循环song1与参数song内容一致时,则运行到了break,结束循环。所以结果有所不同。
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
相似问题