我创建了一个类,该类由掷骰子对象 6 次的程序使用。我的问题出在我的 printStats() 方法中,因为我不确定如何将统计信息打印回主类。具体来说,我收到两个错误,并且都显示“期望返回语句”。这是我的类,名为 Dice。
/*
import java.io.*;
import java.util.*;
class Dice{
Random rnd=new Random();
int count1 = 0, count2 = 0, count3 = 0, count4 = 0, count5 = 0, count6 = 0;
String roll(){
int a = rnd.nextInt(5);
if(a == 0){
count1++;
return "1";
}
if(a == 1){
count2++;
return "2";
}
if(a ==2){
count3++;
return "3";
}
if(a == 3){
count4++;
return "4";
}
if(a == 4){
count5++;
return "5";
}
if(a == 5){
count6++;
return "6";
}
}
int printStats(){
System.out.println("1:" + count1);
System.out.println("2:" + count2);
System.out.println("3:" + count3);
System.out.println("4:" + count4);
System.out.println("5:" + count5);
System.out.println("6:" + count6);
}
void reset(){
count1 = 0;
count1 = 0;
count3 = 0;
count4 = 0;
`enter code here`count5 = 0;
count6 = 0;
}
}
最佳答案
部分问题是您的 roll()
方法没有为每个可能的执行路径提供返回
。
现在,你和我都知道你的逻辑保证 if
语句之一将为 true
,并且你将返回其中之一,但是因为你的所有return
语句位于 if
语句内,它不会编译。
共有三个简单的修复方法。
- 将
if
语句列表更改为大型if-else
结构,然后只需将if(a==5)
更改为最后其他
。 - 使用
switch
语句,并使用用例 0-4,默认为 5。 - 只需在当前方法末尾、任何
if
语句之外添加return "";
即可。
对于 printStats()
方法,您只需将返回类型更改为 void
。
关于java - 我是使用对象和类的新手。如何从用户创建的类中打印?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20025396/