そのため、意味をなさないように見えるエラーが発生し、解決策はおそらく私を正面から見つめています。「文字列インデックスが範囲外です:XX」はわかりますが、同じ文字列を複数回入力してもその値が変わるようです。それは私が推測する(未知のソース)フレーズ変数であると言いますか?そして、フレーズを出力する85行目でエラーが発生していることがわかります。しかし、私の少し初心者の目には、すべてがうまく、ダンディに見えます。流すための知恵はありますか?
ソース:
あなたの代わりにi <= phrase.length()
使用する必要がありますi < phrase.length()
問題は
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++) {
83行目では、iは<=ではなく<phrase.length()である必要があります。
固定ループ:
for (i = 0; i < phrase.length(); i++) {
問題はphrase.substring(i,i+1)
、最後の反復で問題が発生し、範囲を超えてしまうことです。