サイコロを 2 つ振ったときの値を返すプログラムを書いています。ユーザーが特定の種類のサイコロを選択したり、カスタムの面数を選択したりできるようにしたいと考えています。たとえば、私は三角形のサイコロを選びました。3 面のサイコロになります。
変数:
private int die = 1;
private int preselectedSides;
メニューを処理するために作成したスイッチの場合は、次のようになります。
switch(selection)
case 1:
premadeDice(3, 4, 6);
x=1;
break;
受信方法は次のようになります。
//premade Dice Selection//
public int premadeDice(int triangle, int rectangle, int cube)
{
String choice;
boolean flag = false;
while (flag == false)
{
System.out.println("Enter in the shape you want your die to be");
System.out.println("A triangle die has 3 sides. If this is what you want, type \"triangle\"");
System.out.println("A rectangle die has 4 sides. If this is what you want, type \"rectangle\"");
System.out.println("A cube die has 6 sides. If this is what you want, type \"cube\"");
choice = sc.next();
if (choice.equalsIgnoreCase("triangle"))
{
System.out.println("You have chosen the triangle die.");
preselectedSides = triangle;
flag = true;
}
else if (choice.equalsIgnoreCase("rectangle"))
{
System.out.println("You have chosen the rectangle die.");
preselectedSides = rectangle;
flag = true;
}
else if (choice.equalsIgnoreCase("cube"))
{
System.out.println("You have chosen the traditonal cube die.");
preselectedSides = cube;
flag = true;
}
else
{
System.out.println("You have not entered in a valid die shape. Try again");
}
}//end while loop
return preselectedSides;
}//end pre-made dice method
その戻り値にアクセスするためのゲッターを作成しました。
//getter for Die
public void getDie()
{
System.out.println(preselectedSides);
}
次のように呼び出します。
test.getDie();
そして、立方体に対して次の出力を取得します (または、他の形状に対しては、値とともに 1 を取得し続けます) 1 6
この論理エラーを見つけようとしましたが、表示されません。なぜナンバーワンを出力し続けるのですか?必要に応じて説明を求めます。