[解決済み] Javaメソッドで無駄なリターンを避けるには?
2022-05-13 02:27:01
質問
私は
return
ステートメントにネストされた
for
ループは理論的には常に到達することになります。
コンパイラはこれに同意せず
return
文の外側に
for
ループの外側で 私の現在の理解を超えた、このメソッドを最適化するエレガントな方法を知りたいのですが、私が試みた break の実装はどれもうまくいかないようです。
ランダムな整数を生成し、intパラメータとしてメソッドに渡された範囲内で生成された2番目のランダムな整数が見つかるまで繰り返された反復を返す、割り当てからのメソッドが添付されています。
private static int oneRun(int range) {
int[] rInt = new int[range+1]; // Stores the past sequence of ints.
rInt[0] = generator.nextInt(range); // Inital random number.
for (int count = 1; count <= range; count++) { // Run until return.
rInt[count] = generator.nextInt(range); // Add randint to current iteration.
for (int i = 0; i < count; i++) { // Check for past occurence and return if found.
if (rInt[i] == rInt[count]) {
return count;
}
}
}
return 0; // Never reached
}
どのように解決するのですか?
コンパイラのヒューリスティックでは、決して最後の
return
. もしそれが決して到達されないと確信するならば、私ならそれを
throw
に置き換えて、状況を明確にします。
private static int oneRun(int range) {
int[] rInt = new int[range+1]; // Stores the past sequence of ints.
rInt[0] = generator.nextInt(range); // Inital random number.
for (int count = 1; count <= range; count++) {
...
}
throw new AssertionError("unreachable code reached");
}
関連
-
Collections.sortがdoubleでソートできない問題を完璧に解決する。
-
Junitのユニットテストはjava.lang.Testを報告します。
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaでNullPointerExceptionを回避する方法
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Java Mapの各エントリを効率的に反復処理するには?
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み] JavaでArrayListではなくLinkedListを使用するのはいつですか?
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
-
[解決済み】JSP 2を使用して、JSPファイル内のJavaコードを回避するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
mvn' は、内部または外部のコマンド、操作可能なプログラムまたはバッチファイルとして認識されません。
-
スレッド "main "での例外 java.util.NoSuchElementException in Java 問題解決済み
-
XMLファイル操作時のjava.util.NoSuchElementExceptionを解決する方法。
-
Eclipse の問題 アクセス制限。タイプ 'jfxrt' はAPI解決されていません。
-
アクセス制限です。タイプ 'Application' は API ではない(必要なライブラリに制限がある)。
-
Javaでよくある構文エラー
-
が 'X-Frame-Options' を 'sameorigin' に設定したため、フレーム内に存在する。
-
CertificateException: XXXに一致するサブジェクトの代替DNS名が見つかりません 解決策
-
X11 DISPLAY変数が設定されていない」問題の解決方法
-
Java基礎編 - オブジェクト指向