コイン投げをシミュレートするプログラムを作成しようとしています。コインが初めて表を裏返したときに、プログラムを終了させたい。while ループの最初のステートメントは、コインを 1 回裏返します。次に、投げたばかりのコインが表であったかどうかを示す if ステートメントがあります。プログラムを終了します。しかし、私のプログラムは思い通りに動作しません。時々
私の質問は、while ループで 1 サイクルごとにコインを 1 回または 2 回投げているかということです。コインは while ループで 1 回裏返され、次に if 条件で 2 回裏返されますか? テストしましたが、毎回異なるエラーで異なる結果が得られ、その理由がわかりません。
私のプログラムでやろうとしていることに対して if 条件は正しいですか?
import acm.program.*;
import acm.util.*;
public class CoinToss extends ConsoleProgram{
public void run(){
while (true){
println(flipCoin());
if (flipCoin() == "heads"){
break;
}
}
}
public String flipCoin(){
String flip = rgen.nextBoolean() ? "heads" : "tails";
return flip;
}
public RandomGenerator rgen = RandomGenerator.getInstance();
}