我是编程新手,一旦在代码的另一部分中编写方法,我就很难弄清楚如何调用方法。下面是一段完整的代码(不是所有的!),但我真的很感激,如果有人能纠正这一点,但有点解释我做错了什么?我正在上在线课程,教授有点难联系!
while (x == 'y'){
int roll = 1;
System.out.println("Roll " + roll);
roll++;
System.out.println(RollTheDice(dA, dB));
}
}
public static int RollTheDice(int dA, int dB){
int A = (int)(Math.random() * 6 + 1);
int B = (int)(Math.random() * 6 + 1);
System.out.println(A + "n" + B);
int sum = (A + B);
if (sum == 7)
System.out.println("Craps!" + "n");
else if (sum == 2)
System.out.println("Sanke eyes!" + "n");
else if (sum == 12)
System.out.println("Box cars!" + "n");
return A + B;
}
首先,通过在while循环中声明roll
,该值将永远是1或2,因为它将在每次循环迭代中这样做。你需要在循环之前声明:
int roll = 1;
while(x == 'y') {
roll++;
}
接下来,你的RollTheDice
函数不会对你传递给它的变量做任何事情(即dA
和dB
是未使用的,A
和B
是使用的),所以不管你传递什么。
最后,如果没有在while循环上面将dA
和dB
声明为变量,则函数调用将失败。您需要像这样将实际值传递给调用:
RollTheDice(1, 6);
首先,你有一个条件为while (x == 'y')
的while
循环-但是你永远不会改变x的值。这样做的结果是循环永远不会结束(无限循环)。
你的下一个问题是你没有在调用上下文中定义dA和dB是什么,只在静态函数中定义。因为被调用的函数定义了两个int形参,当你调用它时,你应该以RollTheDice(5, 6)
的形式调用它,或者你应该把int值赋给dA和dB(顺便说一下,你知道当你调用函数时,调用中的变量不必和函数参数中的变量有相同的名字,对吧?)
int xA = 5;
int xB = 6;
System.out.println(RollTheDice(xA, xB));
最后,所有这些都是假设在顶部有一个缺失的void Main() {
行。