我是 java 新手,我的 dice 程序又遇到了另一个错误。
在这个程序中,我有三个方法,roll() 来掷骰子并返回一个介于 1 和用户指定的数字之间的值,getFaceValue(),以 int 形式返回掷骰子的值,以及 toString(),将骰子作为字符串返回。
我之前关于我的程序的问题的答案使我能够使程序正常工作,但它的结构不像教授想要的那样,所以我不得不重新设计它。我现在知道我的方法/变量都不能是静态的,我只能在程序的主要部分接受用户输入。
当我尝试编译时,出现以下错误:
Die.java:12: error: cannot find symbol
double y = (x * sides) + 1;
symbol: variable sides
location: class Die
我的代码如下:
import java.io.*;
import java.util.*;
public class Die {
//private int sides;
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() {
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) {
int sides;
System.out.println("How many sides will the die have?");
Scanner keyboard = new Scanner(System.in);
sides = keyboard.nextInt();
System.out.println(" ");
Die die = new Die();
System.out.println("Roll: " + die.roll());
System.out.println("Face: " + die.getFaceValue());
System.out.println("String: " + die.toString());
}
}
最初,我将变量边作为私有 int(您可以在我的程序中看到它被注释掉),但这会产生静态引用错误。
感谢您提供的任何帮助。
上一个问题是:骰子程序中的方法返回0