Java 在我正在进行的DiceRoll项目中,If和Switch语句存在问题

Java 在我正在进行的DiceRoll项目中,If和Switch语句存在问题,java,if-statement,switch-statement,dice,Java,If Statement,Switch Statement,Dice,我目前正在学习的课程之一是掷骰子项目。项目的一个要求是使用嵌套的if-else语句和至少一个开关语句。另一个要求是根据这张图给出掷骰子的俚语 下面是我当前的代码,底部有一个解释: import java.util.Random; public class Dice { public int die1; public int die2; public int total; public String name; public boolean doubles = false; Ra

我目前正在学习的课程之一是掷骰子项目。项目的一个要求是使用嵌套的if-else语句和至少一个
开关
语句。另一个要求是根据这张图给出掷骰子的俚语

下面是我当前的代码,底部有一个解释:

import java.util.Random;

public class Dice {
 public int die1;
 public int die2;
 public int total;
 public String name;
 public boolean doubles = false;

 Random random = new Random();

  public void setDie1() {
   die1 = random.nextInt(6) + 1;
  }

  public void setDie2() {
    die2 = random.nextInt(6) + 1;
  }

  public void setTotal() {
    total = die1 + die2;
  }

  public int getDie1() {
    return "Roll #1: " + die1;
  }

  public int getDie2() {
    return "Roll #2: " + die2;
  }

  public int getTotal() {
    return die1 + "plus" + die2 + "=" + total;
  }

  public boolean checkDouble() {
    if (die1 == die2) {
      doubles = true;
      return " ";
    } else {
      doubles = false;
      return " ";
    }
    return " ";
  }

  public String getName() {
    if (doubles = true){
      name = "1";
    } else if (total = 7) {
      name = "7";
    } else if (total = 5) {
      name = "5";
    } else if (total = 9) {
      name = "9";
    } else if (total = 11) {
      name = "11";
    } else if ((die1 = 1 && die2 = 2) || (die1 = 2 && die2 = 1)) {
      name = "2";
    } else if ((die1 = 4 && die2 = 2) || (die1 = 2 && die2 = 4)) {
      name = "6";
    }
  }
}
所以我最初的想法是在getName中创建嵌套的if-else语句。这些将对应于数字,然后我将使用这些数字生成一个switch语句——也是在getName中——它将根据掷骰子的数字返回骰子俚语。我发现的唯一问题是,因为有多种方法可以滚动每个数字


例如,如果数字是6,则可以滚动双3或2和4。这意味着我必须创建许多不同的情况,并创建一个非常长的switch语句。最后,我还遇到了一个错误,
name=“2”
name=“6”语句,其中需要一个
您正在犯一些基本错误

  • 返回类型为
    int
只需返回一个int,并在打印时给它一个名称

  • =
    用于赋值,
    =
    用于数值比较。您正在错误地比较模具值。您经常在
    getName()
    方法中执行此操作
  • 您没有在
    getName()
    方法中返回值
  • 如果返回类型为
    布尔值
    ,则不能返回
    字符串
为什么不做下面的事情呢

public boolean checkDouble() {
    return die1 == die2;
}
  • 一个建议。我建议使用
    throw
    方法并在那里生成它们,而不是使用setter来生成die-throw。然后使用getter检索值
我感觉你不理解一些语法基础。您的代码中一定有许多编译时错误。您需要努力确保程序正确编译并运行。然后处理执行/逻辑问题

我也建议你和你的导师讨论这个问题

else if ((die1 = 1 && die2 = 2) || (die1 = 2 && die2 = 1)) {
      name = "2";
  public boolean checkDouble() {
    if (die1 == die2) {
      doubles = true;
      return " ";
    } else {
      doubles = false;
      return " ";
    }
    return " ";
  }
public boolean checkDouble() {
    return die1 == die2;
}