[解決済み] Javaでrandomクラスを使用した簡単なコイントス。do whileループではランダムな結果を生成できないようです。
2022-02-16 02:38:14
質問
mainでdo-whileループを実行するたびに乱数を生成するのに問題があります。do-while文を削除すると、if文は正常に動作し、毎回ランダムな結果を生成しているように見えますが、ループ内で繰り返されると、最初の結果を繰り返すだけのようです。
以下は私のコードです。
import java.util.Random;
public class CoinToss {
private enum Coin {Heads, Tails};
Random randomNum = new Random();
private int result = randomNum.nextInt(2);
private int heads = 0;
private int tails = 1;
Coin coinFlip;
public void flip() {
if (result == 0) {
coinFlip = Coin.Heads;
System.out.println("You flipped Heads!");
} else {
coinFlip = Coin.Tails;
System.out.println("You flipped Tails!");
}
}
}
そして、私のメソッドのメインは、私が問題を抱えているように見える。
import java.util.Scanner;
public class TossGame {
public static void main(String[] args) {
CoinToss test = new CoinToss();
int choice;
System.out.println("Welcome to the coin toss game!");
do {
System.out.print("Enter 1 to toss coin or enter 0 to quit: ");
Scanner input = new Scanner(System.in);
choice = input.nextInt();
if (choice == 1) {
test.flip();
} else if (choice > 1) {
System.out.println("Invalid entry - please enter 1 or 0: ");
choice = input.nextInt();
}
} while (choice != 0);
}
}
解決方法は?
の中に結果を入れる必要があります。
flip()
メソッドを呼び出すたびにランダム化されます。
private int result;
private int heads = 0;
private int tails = 1;
Coin coinFlip;
public void flip(){
result = randomNum.nextInt(2)
if(result == 0){
coinFlip = Coin.Heads;
System.out.println("You flipped Heads!");
}else{
coinFlip = Coin.Tails;
System.out.println("You flipped Tails!");
}
}
}
関連
-
[解決済み】エラー:配列または java.lang.Iterable のインスタンスに対してのみ反復処理を行うことができます。
-
[解決済み】Doubleはdereferencedできない?
-
[解決済み】エラー「No enclosing instance of type Foo is accessible」の原因と修正方法について教えてください。
-
[解決済み】指定された子にはすでに親がいます。先に子の親に対してremoveView()を呼び出す必要がある(Android)
-
[解決済み] 解決済み】Javaが「型をインスタンス化できない」というエラーを返す [重複] [重複]
-
[解決済み】keytoolエラー 鍵屋が改ざんされたか、パスワードが不正確だった場合
-
[解決済み] intellijが自動配線リポジトリにタイプのBeanが見つからないと不正確な発言をする件
-
[解決済み】予期しない型エラー
-
[解決済み] SQLエラー。0, SQLState: 08S01 通信リンクの失敗 [重複]。
-
[解決済み] Javaクラスにおけるcanonical name、simple name、class nameの違いは何ですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] java.sql.SQLException: ユーザー 'root'@'localhost' (using password: YES) のためのアクセスが拒否されました。
-
[解決済み】Java、"変数名 "を変数に解決することができない
-
[解決済み] java のクラス内のコンストラクタは、指定された型に適用できない
-
[解決済み] hibernate のプロパティが見つかりません。
-
[解決済み】デフォルトのキーストアファイルが存在しない?
-
[解決済み】JLabelのテキストを中央に配置するには?
-
[解決済み] Hide Utility Class Constructor : ユーティリティクラスはパブリックまたはデフォルトコンストラクタを持つべきではありません。
-
[解決済み】Ubuntu: OpenJDK 8 - パッケージを見つけることができません。
-
[解決済み】koch snowflake java recursion
-
[解決済み] SQLエラー。0, SQLState: 08S01 通信リンクの失敗 [重複]。