Javaでプログラミングを始めたばかりですが、理解できないような問題が発生しました。
私のプログラムは、(n)がユーザーによって指定された、(n)面のサイコロを振ることを目的としています。次に、プログラムはロールの結果を整数として、ロールの額面値を整数として(これはロールの結果と同じように見えます)、ロールの結果を文字列として出力します。最後の2つのメソッド(額面と文字列)はダイスロールとは別のメソッドですが、それでも必須です。
私の問題は、コードはコンパイルされますが、メソッドgetFaceValue()とtoString()は両方ともゼロを返すことです。私のコードは次のとおりです。
import java.io.*;
import java.util.*;
public class Die {
private int z;
private String faceName;
//sets (and returns) the face value to a uniform random number between 1 and the number of faces.
public int roll() {
Scanner keyboard = new Scanner(System.in);
int sides = keyboard.nextInt();
double x = Math.random();
double y = (x * sides) + 1;
z = (int)y;
return z;
}
//returns the current face value of the die.
public int getFaceValue() {
int face = z;
return face;
}
//returns the string representation of the face value.
public String toString() {
faceName = Integer.toString(z);
return faceName;
}
public static void main(String [] args) {
System.out.println("How many sides will the die have?");
System.out.println(" ");
System.out.println("Roll: " + new Die().roll());
System.out.println("Face: " + new Die().getFaceValue());
System.out.println("String: " + new Die().toString());
}
}
私はあなたが提供できるどんな助けでも大いに感謝します。