java - While,break に関する質問
習慣沉默
習慣沉默 2017-05-17 10:02:00
0
2
607

すみません、なぜこのコードの while ループが else の後ろの部分に入ると、後続の while ループは前半の分岐に入ることはできなくなるのですか? if以降の条件が満たされていれば良いと思いますが、実行結果は最初のループに入れないので壊れません。神にアドバイスを求める:

パブリック クラス SearchString {

リーリー

}
実行結果は -1 10 13 -1 10 13、無限ループです

習慣沉默
習慣沉默

全員に返信(2)
黄舟

3回目のクエリでは結果が一致しないため、indexOf()の第2パラメータが0未満の場合は0として扱われます。
それで、最初のサイクルが再び始まります。

ブレークポイントを使用してデバッグでき、結果は非常に明確になります

いいねを押す +0
洪涛

2回目のループに入るとelseが入り、posは13になります。次のループ、つまり 3 番目のループに入っても、else に入ります。
今度はelseでaが16になり、posが-1になり、次のループs1,indexOf(s2,pos)が0のままelseに入ってしまうので、無限ループが発生します。

elseのposを毎回変更する必要はなく、s1文字列の後半を直接インターセプトする必要があると思います。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート