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回答

好帮手慕小尤

2019-12-29

同学你好,break放在if判断之外,当循环第一遍时,则就运行到了break,就结束循环。而在break放在if判断之内,表示当循环song1与参数song内容一致时,则运行到了break,结束循环。所以结果有所不同。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

0

0 学习 · 11489 问题

查看课程