Java 将计数器设置为0,然后使用方法添加计数器将使其保持为0
我有一个猜测程序,我正试图添加一个计数器。在粗体部分我有一个计数器。如果你猜错了,计数器就会加1。但当它打印它时,不管发生什么,它都打印为0Java 将计数器设置为0,然后使用方法添加计数器将使其保持为0,java,methods,count,counter,zero,Java,Methods,Count,Counter,Zero,我有一个猜测程序,我正试图添加一个计数器。在粗体部分我有一个计数器。如果你猜错了,计数器就会加1。但当它打印它时,不管发生什么,它都打印为0 public static void firstGame(String Answer, String userGuess, int counter) { userInput = new Scanner(System.in);
public static void firstGame(String Answer, String userGuess, int counter)
{
userInput = new Scanner(System.in);
boolean playgame = true;
while(playgame == true)
{
Answer = "Sam";
lnPrint(" ");
lnPrint("Take a guess at my name! It starts with an S...");
sPrint(":");
userGuess = userInput.next();
if(userGuess.equalsIgnoreCase(Answer))
{
lnPrint("You got it! Its " + Answer);
lnPrint(" ");
break;
}
else if(userGuess != Answer)
{
lnPrint("Good guess, keep trying!");
counter++;
}
}
}
这是我与计数器的游戏方法
public static void main(String[] args)
{
Scanner userInput = new Scanner(System.in);
int Start, counter = 0;
String Answer, userGuess, middleAnswer, middleUserGuess;
Answer = null;
userGuess = null;
middleAnswer = null;
middleUserGuess = null;
Start = 0;
while(Start !=2)
{
lnPrint("(1) Start Game");
lnPrint("(2) Exit");
sPrint(":");
Start = userInput.nextInt();
if(Start == 1)
{
firstGame(userGuess, Answer, counter);
lnPrint("Now, how about my middle name?");
nlnPrint(counter);
middleGame(middleAnswer, middleUserGuess);
}
这是打印它的代码您之前初始化过“计数器”吗?
下面是一个它工作的示例:
$.Guess = function() {
var parent = this;
var counter = 0;
this.guess = function(val) {
if ( val != 5 ) {
parent.guessedWrong();
}
}
this.guessedWrong = function() {
counter++;
}
this.guessed = function() {
return counter;
}
this.resetCounter = function() {
counter = 0;
}
}
var game = new $.Guess();
game.guess(1);
game.guess(2);
alert( game.guessed() );
game.guess(3);
game.guess(4);
game.guess(5);
// Alerts 4, because there is 5 guesses and one of them (the one with value 5) is correct
alert( game.guessed() );
// Reset counter to 0
game.resetCounter();
game.guess(6);
game.guess(7);
game.guess(8);
alert( game.guessed() );
…上面的代码可以在这里测试:这看起来像是一个常见的传递值/引用问题。当使用
计数器
作为firstGame
的参数时,在firstGame
方法中使用的是计数器
的值,而不是传递对计数器
变量的引用;您可以在此处阅读,例如:
有很多方法可以通过引用方法来传递整数(请参阅),但在这种情况下,我认为您应该简单地将
计数器
声明为全局变量。我在main方法中启动了计数器。我也不知道你的代码是什么意思。有没有一种方法可以在我的代码中使用它而不必全部更改?现在我更加关注您的代码,看起来像是Java?我的坏消息是,我之前没有注意到它,只是快速地瞥了一眼,以为它是javascript。但我仍然认为我的示例是有效的,无论使用哪种语言(如果我错了,请纠正我)。是的,它是Java。但那代码不是我要找的。我需要知道为什么计数器是++;在一个方法中,主方法不起作用。我在main方法中也将其初始化为0。很抱歉,我无法帮助您,我没有Java方面的经验:/一个热门提示:您可以添加标记“Java”:)我尝试将其设置为全局,但现在出现了一个错误:“参数计数器的修饰符非法;只允许使用final”我将全局int放在main方法中。