- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对 Java 有点陌生,我无法真正理解代码中 if
语句之后需要的 break;
。如果我在 switch
关闭后不添加最后一个 break;
语句,我会得到多个具有相同标题但时间长度不同的歌曲副本。
但是,如果我添加 break;
,我只会在用户的音乐文件中获得指定歌曲的一份副本。我试图理解为什么会发生这种情况。是不是因为如果我不脱离包含 switch
的 if
语句,那么 switch 会自行重复?
try{
Scanner input = new Scanner(inFile);
//looping through user requested file of music
while (input.hasNextLine()){
//reads new line in the file
String line = input.nextLine();
String[] tokens = line.split("[,]");
// loops through list of all songs
for (int i = 0; i < allSongs.length; i++){
String nameOfSong = tokens[1];
if (allSongs[i].getTitle().equals(nameOfSong)){
String playlistTypeName = tokens[0];
switch (playlistTypeName){
case "playlist1":
playlist1.enqueue(allSongs[i]);
break;
case "playlist2":
playlist2.enqueue(allSongs[i]);
break;
case "playlist3":
playlist3.enqueue(allSongs[i]);
break;
default:
break;
}
break;
}
}
}
最佳答案
你有一个循环中的开关。switch 主体中的 break
语句“跳”出 switch 部分。
但是该代码仍然位于一个循环中(它位于另一个循环中)。
因此,外部中断会影响“循环”的发生方式。
因此,真正的答案是退后一步,单独查看每一件事。实现这一目标的一个好方法是不要将这么多东西放入一个方法中。而是使用一种独特的方法来自行进行“切换”处理。
换句话说:您在代码中投入了太多的复杂性。现在你不知道发生了什么。
更准确地说:就您的情况而言,您使用的是错误的解决方案。含义:您真正想要做的是将一个字符串(例如“playlist1”)映射到特定对象。因此,您不必手动执行此操作,而是使用 switch 语句可以使用
Map<String, PlayList> playListsByName = new HashMap<>();
playListsByName.put("playlist1", playlist1);
...
然后你的 switch 语句消失,取而代之的是:
PlayList plist = playListsByName.get(yourToken);
if (plist != null) {
plist.enqueue(allSongs[i]);
} else {
... error handling: invalid play list token
关于java - try/catch 包含 for + if + switch 语句、break;需要在包含 switch 的 for 循环中包含 if 语句之后,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50169445/
是否有效率偏好以下控制流选项之一用于循环或切换另一个? 选项 1: switch(...){ case 1: if (...) { ... } else if
我需要在某个地方修复一些 CSS,因为我的文本没有环绕,如果它是一个非常长的单词,它会无限期地继续下去。 在大多数情况下,我在我的 CSS 文件中尝试了 word-wrap: break-word;
这个问题在这里已经有了答案: What is the difference between "word-break: break-all" versus "word-wrap: break-word
我的问题: overflow-wrap: break-word 和 word-break: break-word 有区别吗? 非重复: 这里有一些现有的问题,乍一看可能是重复的,但实际上不是。 Wha
我目前想知道两者之间有什么区别。当我同时使用它们时,如果它不适合容器,它们似乎会打破这个词。但为什么 W3C 做了两种方式来做呢? 最佳答案 word-wrap: break-word 最近更改为 o
满足条件时如何跳出循环? 例如: for (i in 0..10){ if (i==3){ // equivalent of break } } 最佳答案 Q#没有中
CSS3 规范说部分支持 word-wrap:break-word; 在 Chrome 中你必须使用 word-wrap:break-all; 但是没有连字符。我正在使用 text-align:jus
我想在我的 View 列表中显示来自数据库的所有评论。但有时,评论会很长。我试图用 word-wrap:break-word 来“打破”它们,但没有结果——像这样的评论 aaaaaaaaaaaaaaa
我正在尝试将一个长 URL 放置在侧边栏中,以在表格单元格宽度的范围内中断和换行。我已将 style="word-break:break-all;" 添加到 td 和围绕文本和 URL 的 span
我有以下代码: public void post(String message) { final String mess = message; (new Thread() {
是否有 word-break: break-word 的 alternative 可以在 firefox 中使用? 在 firefox[版本 57.0] 中 在 Chrome [版本 62.0.320
在this question以及this blog ,其中提到了样式 word-break 及其值。此外,还有值 break-word 作为属于例如的东西。 自动换行类。 在最近的 VS 中 MVC
我正在尝试将文本包装在 td 中并使用以下样式 word-break:break-all 在 IE 中工作得很好,但在 Firefox 中失败,请注意这是不支持的!尝试了 http://petesbl
我正在使用“word-break: break-all”在任何字符之间插入分隔符。 但是,在 Chrome 中,它无法正常处理特定字符(例如冒号、分号、逗号),如下所示。 (我的代码笔在这里:http
它只有在我用不同的元素包裹 anchor 标记时才有效,但我正在阅读 html,所以我想将它添加为整个页面的样式。 最佳答案 我不确定你想在这里实现什么,如果你能分享一些代码片段会很好。 无论如何,我
这些看起来都是一样的,有什么区别? https://jsfiddle.net/pmuub8w1/2/ p{ word-break:normal; } p{
目前下面的代码,保持div宽度固定,换行由于break-all .Test{ float: left; margin-bottom: 2px; word-wrap:break-word; word-b
我正在使用 word-break: break-all; 并想知道如何让浏览器自动插入 hyphens ,如 MDN example 中所示. div { width: 80px; heigh
我的 html 有这种结构: content1 content2 content3 content4 content5 content6 co
我正在尝试对齐图像旁边的文本。我想考虑没有空格的长字符串。 我的css如下 .new_item { width: 100%; float: left; border-bottom: 1px solid
我是一名优秀的程序员,十分优秀!