-1

そのため、意味をなさないように見えるエラーが発生し、解決策はおそらく私を正面から見つめています。「文字列インデックスが範囲外です:XX」はわかりますが、同じ文字列を複数回入力してもその値が変わるようです。それは私が推測する(未知のソース)フレーズ変数であると言いますか?そして、フレーズを出力する85行目でエラーが発生していることがわかります。しかし、私の少し初心者の目には、すべてがうまく、ダンディに見えます。流すための知恵はありますか?

ソース:

コード

画像リンク

4

4 に答える 4

2

あなたの代わりにi <= phrase.length()使用する必要がありますi < phrase.length()

于 2013-03-19T20:58:51.593 に答える
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++) {
于 2013-03-19T21:03:38.553 に答える
0

83行目では、iは<=ではなく<phrase.length()である必要があります。

固定ループ:

for (i = 0; i < phrase.length(); i++) {
于 2013-03-19T21:00:31.130 に答える
0

問題はphrase.substring(i,i+1)、最後の反復で問題が発生し、範囲を超えてしまうことです。

于 2013-03-19T21:05:24.200 に答える