Java 不能在 if/else 语句中使用 return 变量
Java cannot return variable within if/else statement
我遇到了一个问题,我无法 return 我在 if/else 语句中使用的变量。 class 掷两个骰子并将骰子相加,两个数字中较大的在“十”位,两个数字中较小的在“个”位(这是针对一个名为 Mäxchen 的德国饮酒游戏,我正在尝试编写代码)。我正在使用 eclipse,Java 18 和 Windows 10。这是我目前的代码:
public int rollDice() {
int result = 0;
Random ran = new Random();
int die1;
int die2;
die1 = ran.nextInt(6)+1;
die2 = ran.nextInt(6)+1;
if(die1>die2) {
int result;
result = (die1*10) + die2;
System.out.println("The result is: " + result + "\n");
} else if(die2>die1) {
int result;
result = (die2*10) + die1;
System.out.println("The result is: " + result + "\n");
} else if(die1==die2) {
int result;
result = (die1*10) + die2;
System.out.println("The result is: " + result + "\n");
}
return result;
}
每次的错误信息是:
duplicate local variable result
我怎样才能改变它以return想要的结果?
在每个 if
块中这样做的目的是什么?:
int result;
这就是错误告诉您的内容。您已经在方法中定义了一个名为 result
的变量,但是在每个 if
块中您定义了 另一个 变量,名为 result
.
这里只需要一个名为result
的变量。只需删除 if
块中的那些声明即可。
您多次声明变量 result
,这是不允许的。
只需删除这 3 个 int result;
语句(在 if/else 语句中),你就会没事的。
变量在 class 中声明一次(在您的情况下),然后使用。
public int rollDice() {
int result = 0;
Random ran = new Random();
int die1;
int die2;
die1 = ran.nextInt(6)+1;
die2 = ran.nextInt(6)+1;
if(die1>die2) {
result = (die1*10) + die2;
System.out.println("The result is: " + result + "\n");
} else if(die2>die1) {
result = (die2*10) + die1;
System.out.println("The result is: " + result + "\n");
} else if(die1==die2) {
result = (die1*10) + die2;
System.out.println("The result is: " + result + "\n");
}
return result;
}
我遇到了一个问题,我无法 return 我在 if/else 语句中使用的变量。 class 掷两个骰子并将骰子相加,两个数字中较大的在“十”位,两个数字中较小的在“个”位(这是针对一个名为 Mäxchen 的德国饮酒游戏,我正在尝试编写代码)。我正在使用 eclipse,Java 18 和 Windows 10。这是我目前的代码:
public int rollDice() {
int result = 0;
Random ran = new Random();
int die1;
int die2;
die1 = ran.nextInt(6)+1;
die2 = ran.nextInt(6)+1;
if(die1>die2) {
int result;
result = (die1*10) + die2;
System.out.println("The result is: " + result + "\n");
} else if(die2>die1) {
int result;
result = (die2*10) + die1;
System.out.println("The result is: " + result + "\n");
} else if(die1==die2) {
int result;
result = (die1*10) + die2;
System.out.println("The result is: " + result + "\n");
}
return result;
}
每次的错误信息是:
duplicate local variable result
我怎样才能改变它以return想要的结果?
在每个 if
块中这样做的目的是什么?:
int result;
这就是错误告诉您的内容。您已经在方法中定义了一个名为 result
的变量,但是在每个 if
块中您定义了 另一个 变量,名为 result
.
这里只需要一个名为result
的变量。只需删除 if
块中的那些声明即可。
您多次声明变量 result
,这是不允许的。
只需删除这 3 个 int result;
语句(在 if/else 语句中),你就会没事的。
变量在 class 中声明一次(在您的情况下),然后使用。
public int rollDice() {
int result = 0;
Random ran = new Random();
int die1;
int die2;
die1 = ran.nextInt(6)+1;
die2 = ran.nextInt(6)+1;
if(die1>die2) {
result = (die1*10) + die2;
System.out.println("The result is: " + result + "\n");
} else if(die2>die1) {
result = (die2*10) + die1;
System.out.println("The result is: " + result + "\n");
} else if(die1==die2) {
result = (die1*10) + die2;
System.out.println("The result is: " + result + "\n");
}
return result;
}