在测试这两种方法时,我得到了混合的结果。有时,在测试时,应该为false的值为true,反之亦然。我已经尝试在Roll方法中返回一个数字,并且在测试时可以正常工作。
public class Game {
public int Roll() {
return ran.nextInt(10) + 1;
}
public boolean checkRoll() {
boolean check;
if(Roll() == 1 || Roll() == 5) {
check = true;
}
else {
check = false;
}
return check;
}
public static void main(String [] args ) {
Game g = new Game();
System.out.println(g.Roll());
System.out.println(g.checkRoll());
}
答案 0 :(得分:4)
致电时
System.out.println(g.Roll());
System.out.println(g.checkRoll());
你实际上运行你的滚动功能TWICE。 (如果你计算在IF / OR中调用它,则为3次)所以你打印的数字与之后在g.checkroll中测试的数字不同(因为它通过调用你的Roll来滚动一个新的数字),所以打印“true”或“false”与早期的数字无关。将checkRoll函数作为子函数放入Roll函数中,或者在测试之前使用一些全局变量存储Roll,而不是重新滚动它。
答案 1 :(得分:0)
考虑到评论,并感谢所有
public int Roll() {
return ran.nextInt(10) + 1;
}
public boolean checkRoll(int num) {
int temp;
temp = num;
if(temp == 1 || temp == 5) {
return true;
}
return false;
}
public static void main(String [] args ) {
Game g = new Game() ;
int roll = g.Roll();
System.out.println(roll);
System.out.println(g.checkRoll(roll));
}