简单的打字机程序错误

时间:2013-03-19 20:56:28

标签: java

所以我得到一个似乎没有任何意义的错误,而且解决方案很可能是盯着我看。我确实理解“字符串索引超出范围:XX”,但即使我多次输入相同的字符串,它似乎也会改变该值。它说(未知来源),我认为是短语变量?我确实看到错误发生在第85行,它打印短语。然而,对于我的新手来说,一切看起来都很精致。有什么智慧可以摆脱?

来源:

Code

Image Link

4 个答案:

答案 0 :(得分:2)

而不是i <= phrase.length()您应该使用i < phrase.length()

答案 1 :(得分:0)

在第83行我应该&lt; phrase.length()不是&lt; =它。

固定循环:

for (i = 0; i < phrase.length(); i++) {

答案 2 :(得分:0)

问题是

for (i = 0; i <= phrase.length(); i++); {

应该是

for (i = 0; i <= phrase.length(); i++) {

(最后删除了分号)

<强>解释

您的代码已重新格式化:

for (i = 0; i <= phrase.length(); i++)
  ;

{
  pause();
  System.out.print(...)
}

只有;在for循环中。 { ... }是一个单独的语句(即不是for循环的一部分)。

将变量声明放在循环中通常会阻止将来发生这种情况:(因为循环外的i引用会产生错误)

for (int i = 0; i <= phrase.length(); i++)

同时

它可能应该是<而不是<=

for (i = 0; i < phrase.length(); i++) {

答案 3 :(得分:0)

问题出在phrase.substring(i,i+1)的最后一次迭代中,它会超出界限。