Java 执行方法时返回值?

Java 执行方法时返回值?,java,return,Java,Return,import java.util.*; 公开课猜测{ 公共静态void main(字符串[]args){ 扫描仪控制台=新扫描仪(System.in); 随机r=新随机(); 简介(); int numGames=0; int numguesss=游戏机(控制台,r); int max=max(numguesss); 再次使用String=“y”; 做{ 游戏机(控制台,r); System.out.println(“您想再次播放吗?”); 再次=console.next(); System.o

import java.util.*;
公开课猜测{
公共静态void main(字符串[]args){
扫描仪控制台=新扫描仪(System.in);
随机r=新随机();
简介();
int numGames=0;
int numguesss=游戏机(控制台,r);
int max=max(numguesss);
再次使用String=“y”;
做{
游戏机(控制台,r);
System.out.println(“您想再次播放吗?”);
再次=console.next();
System.out.println();
numGames++;
}而(再次.startsWith(“y”)| |再次.startsWith(“y”));
统计数据(numGames、numgueses、max);
}
公共静态void intro(){…}
公共静态int游戏(扫描器控制台,随机r){
System.out.println(“我想的是一个介于1和100之间的数字…”);
int-answer=r.nextInt(100)+1;
System.out.println(“answer=“+answer”);
int guess=-1;
整数=0;
while(答案!=猜测){
系统输出打印(“您的猜测?”);
guess=console.nextInt();
numGuesses++;
如果(猜测>回答){
System.out.println(“它较低”);
}else if(猜测<回答){
System.out.println(“更高”);
}否则{
System.out.println(“你在“+numguesss+”猜测”中做对了”);
}
最大值(numgueses);
}
返回NUMGUESS;
}
公共静态整数最大值(整数){
int max=numgueses;
如果(最大值>数值){
最大值=numgues;
}
返回最大值;
}
公共静态void统计(int numGames、int numgueses、int max){
System.out.println(“总体结果:”);
System.out.println(“total games=“+numGames”);
System.out.println(“总猜测数=”+numgues);
System.out.println(“猜测/游戏=“+numguesss/numGames/1.0”);
System.out.println(“最佳游戏=”+max);
}

}
然后,您应该将负责生成
numgueses
的代码放在另一种方法中,您将在
main
游戏中使用该方法,例如:

public static int game(Scanner console, Random r) {
    int numGuesses = getNumberOfGuesses(..);
    //continue implementation here
}

public static void main(String[] args) {
    int numGuesses = getNumberOfGuesses(..);
    //use value 
}
class Foo {

    private int bar = 0;

    private void foobar(int arg) {...}

}

您应该熟悉类变量。在类的顶部,您可以声明一个变量,也可以给它一个值。如果您想从类中的不同方法访问NUMGUESS,那么这就是您应该对NUMGUESS执行的操作。以下是Foobar示例:

public static int game(Scanner console, Random r) {
    int numGuesses = getNumberOfGuesses(..);
    //continue implementation here
}

public static void main(String[] args) {
    int numGuesses = getNumberOfGuesses(..);
    //use value 
}
class Foo {

    private int bar = 0;

    private void foobar(int arg) {...}

}
您只需注意不要在方法中执行
int numguesss
somewe,因为这将创建第二个局部变量。可以仅通过名称访问类变量


接下来,您要跟踪所玩游戏的总数和猜测的总数。您现在可以猜测(哈哈哈),您还需要使用类变量。如果您需要跟踪总猜测,即使在程序重新启动时,您也需要将这些值存储在文件中,但这将是另一个时间


最后,还有两件小事

1.)方法
max
。我不知道max应该做什么,但目前它只是返回传递给它的值。此外,if语句将从不执行(x不能高于x)


你应该考虑不要把每件事都弄得一团糟。它显然是这样工作的,但事实并非如此,所谓的面向对象编程

您的方法
max
完全是一团糟。。。真的。我在你的统计方法系统.out.println(“guesss/game=“+numguesss/numGames/1.0”)中没有得到这一行;