猜猜java的计数显示错误

时间:2013-09-20 06:17:24

标签: java

我试图显示用户猜测的次数,这些是错误

  

NumberGame.java:44:不是声明         System.out.println {“猜测次数:”+ guessCount);                   ^ NumberGame.java:44:';'预期         System.out.println {“猜测次数:”+ guessCount);                           ^ NumberGame.java:44:不是声明         System.out.println {“猜测次数:”+ guessCount);                                                  ^ NumberGame.java:44:';'预期         System.out.println {“猜测次数:”+ guessCount);                                                              ^ NumberGame.java:48:解析时到达文件末尾}

我的代码是:

import java.util.Random;
import java.util.Scanner;

public class NumberGame
{
    public static void main(String[] args)
    {
        final int MAX_NUMER = 100;

      int number = rand.nextInt(MAX_NUMBER) + 1;
        int on_off = 1;
      int guessCount = 0;
      int guess; 


      Random rand = new Random();
        Scanner keyboard = new Scanner(System.in);

        while(on_off == 1)
      {
            System.out.print("Guess a number between 1 and 100: ");
         guess = keyboard.nextInt();
         guessCount++;

            if(guess < number)
         {

            System.out.println("Too Low");
            guessCount++;
            }

            if(guess > number)
         {

            System.out.println("Too High");
            guessCount++;
            }

            if(guess == number)
         {

            System.out.println("Correct! You win!");
            }

        }
         System.out.println{"Number of guesses: " + guessCount};

    }
}

非常感谢任何帮助!谢谢你的时间!

5 个答案:

答案 0 :(得分:2)

 System.out.println{"Number of guesses: " + guessCount);

应该是

 System.out.println("Number of guesses: " + guessCount);

你有一个错字。您写了{而不是(

并在行

 int number = rand.nextInt(MAX_NUMBER) + 1;

您尚未声明rand

并且

int number = rand.nextInt(MAX_NUMBER)+ 1;

应该是

 int number = rand.nextInt(MAX_NUMER) + 1; //you decalred final int MAX_NUMER 

PS:我建议你使用IDE,这可以节省你很多时间。

答案 1 :(得分:2)

您遇到语法错误。仔细看看你的线。您有一个{而不是(

System.out.println{"Number of guesses: " + guessCount);

您的括号不匹配。

根据您的评论进一步说明:

大括号{}通常表示代码块,您可以采用非常简单的方式将代码组合为一种单数语句(即if (x==1) {statements;} else { more statements;})。

括号()可用作函数的一部分。在您的情况下,System.out.println是一个给您使用的函数。在()内,您传递参数/参数。在这种情况下,您将传递要将Java打印出来的String。对于System.out.println(),您需要括号,而不是大括号。

答案 2 :(得分:2)

您的代码中存在拼写错误:

System.out.println{"Number of guesses: " + guessCount);

左括号错了。它应该是:

System.out.println("Number of guesses: " + guessCount);

变量名中也有拼写错误:

final int MAX_NUMER = 100;

应该是

final int MAX_NUMBER = 100;

希望这有帮助

答案 3 :(得分:1)

(

中使用{代替println大括号

答案 4 :(得分:1)

您更正后的语法似乎已使用右大括号)替换右括号}

我在第44行用{替换了(。另外,我在第8行修正了一个拼写错误,您写的是MAX_NUMER而不是MAX_NUMBER。此外,rand需要在首次使用之前声明并初始化,因此我将其上移到您为number分配值的位置。

对于第一个错误,方法调用使用括号,而不是花括号;花括号用于代码块,如类中的代码,或用于方法的主体。

第二个错误只是一个错字,而且相当无趣。

没有声明和初始化rand的第三个错误就是这个;您需要先声明一个变量才能使用它,而对于Random,它需要在首次使用之前进行初始化。

import java.util.Random;
import java.util.Scanner;

public class NumberGame
{
    public static void main(String[] args)
    {
        final int MAX_NUMBER = 100;

        Random rand = new Random();

        int number = rand.nextInt(MAX_NUMBER) + 1;
        int on_off = 1;
        int guessCount = 0;
        int guess; 

        Scanner keyboard = new Scanner(System.in);

        while(on_off == 1)
        {
            System.out.print("Guess a number between 1 and 100: ");
            guess = keyboard.nextInt();
            guessCount++;

            if(guess < number)
            {
                System.out.println("Too Low");
                guessCount++;
            }

            if(guess > number)
            {
                System.out.println("Too High");
                guessCount++;
            }

            if(guess == number)
            {
                System.out.println("Correct! You win!");
            }
            System.out.println("Number of guesses: " + guessCount);
        }
    }
}