【发布时间】:2012-01-04 19:14:16
【问题描述】:
我是 Java 新手,但我认为这几周我自学得很好。但现在我陷入了这个循环。
这是我班上的一个方法。为了帮助我调试,我在这个方法中添加了“myString”字符串和“syntax”列表来演示正在发生的事情并保持简单,至少现在是这样。
public void getIndex(){
String myString = "2 2 + 3 5";
String[] syntax = myString.split(" ");
for (int index = 0; index < syntax.length; index++){
System.out.println("current index is: " + index);
System.out.println("It has: " + syntax[index]);
// these print statements are made to help me debug
if (syntax[index] == "+"){
indexNeeded = index;
break;
}
}
System.out.println("Index Needed: " + indexNeeded);
正如您在循环内部看到的那样,我想在列表元素“语法”为“+”时打破“for循环”。 (我在这里显示“+”,但它可以是实际程序中的任何内容。)
这是运行此方法时的输出:
current index is: 0
It has: 2
current index is: 1
It has: 2
current index is: 2
It has: +
current index is: 3
It has: 3
current index is: 4
It has: 5
Index Needed: 0
当找到“+”时,循环应该已经停止,但似乎“if 语句”根本不起作用,因此“indexNeeded”没有改变。
这是一个简单的方法,但我在这里做错了什么?
【问题讨论】:
-
这都是关于字符串和字符的相等性测试。与
if或break无关。你真的需要一个更好的教程,一个更完整地涵盖字符串相等检查的教程。 -
@S.Lott -- 这是一个容易犯的错误,即使您对该主题相当熟悉。很可能是新手,无论他们是否接触过关于字符串比较的讲座。
-
@HotLicks:从来没有说过这不容易。但是“我认为我自学做得很好”表明需要更好的教程。
-
是的,但这是你通过实践学到的东西——在犯了 2-3 次错误之后你就会“明白”(*)——比你只听听要好得多讲座。 (*)(尽管在这一点上的复发非常普遍,即使对于那些已经编程了几十年的人也是如此。)
-
那么你犯了多少次错误?? (说实话,现在!)
标签: java if-statement for-loop indexing break