Программа для угадывания числа в java с использованием класса

Мы предназначены для создания программы на Java, в которой компьютер случайным образом угадывает число от 1 до 10 и позволяет пользователю угадать это число. Это то, что у меня есть до сих пор, когда я выполняю в cmd, я получаю следующее сообщение об ошибке:

1.) В строке 17: недопустимое начало выражения

2.) В строке 17: не удается найти символ

import java.util.Scanner;
import java.util.Random;
class NumberGuess{
        Random r = new Random();
        final int upperbound = 10;
        int random = r.nextInt(upperbound);
        int inputnum;
        
    public static void main(String[] args) {
        NumberGuess whileloop = new NumberGuess();
          System.out.println("You have to guess the number");
          System.out.println("----------------------------");
          System.out.println("Hint: Number is less than 10");
        System.out.println("----------------------------");
        Getter getinput = new Getter();   
        while(whileloop.inptnum != whileloop.random){
        Getter.takeUserInput();
        Getter.isCorrectNumber();
        }
    }
}
class Getter{

   static void takeUserInput(){
    NumberGuess forinput = new NumberGuess();
    Scanner sc = new Scanner(System.in);
    System.out.println("Enter your guess:");
    forinput.inputnum = sc.nextInt();
 }

   static void isCorrectNumber(){
   NumberGuess forcompare = new NumberGuess();
   System.out.println(forcompare.random);
   Getter takeinp = new Getter();   
    if(forcompare.inputnum == forcompare.random){
       System.out.println("The guess is correct");
   }
    else{
        System.out.println("The guess is incorrect try again");
    }
  }
}
# class object infinite-loop
Источник
  • 0
    Несколько советов: как видите, ваш код не выглядит правильно отформатированным в вашем вопросе. Отформатируйте код, выделив его и нажав кнопку {} над текстовым полем. Дайте вашим переменным осмысленные имена; если вы назовете их obj1, obj2, a, b и т. д., мы не сможем следовать вашей логике, и тем не менее вы ожидаете, что мы дадим вам ответ.
Codelisting
за 0 против

В вашем классе NumberGuess у вас есть атрибут inputnum, но в строке 17 (пока) вы пытаетесь получить доступ к атрибуту «inptnum», которого не существует. : D

Обновлять:

Вот фиксированный код:

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

class NumberGuess{
    Random r = new Random();
    final int upperbound = 10;
    int random = r.nextInt(upperbound);
    int inputnum;
        
    public static void main(String[] args) {
        NumberGuess whileloop = new NumberGuess();
        System.out.println("You have to guess the number");
        System.out.println("----------------------------");
        System.out.println("Hint: Number is less than 10");
        System.out.println("----------------------------");
        Getter getinput = new Getter();   
        while(whileloop.inputnum != whileloop.random){
           Getter.takeUserInput();
           Getter.isCorrectNumber();
        }
    }
}

class Getter{
   
   static void takeUserInput(){
      NumberGuess forinput = new NumberGuess();
      Scanner sc = new Scanner(System.in);
      System.out.println("Enter your guess:");
      forinput.inputnum = sc.nextInt();
   }

   static void isCorrectNumber(){
      NumberGuess forcompare = new NumberGuess();
      System.out.println(forcompare.random);
      Getter takeinp = new Getter();   
      if(forcompare.inputnum == forcompare.random){
         System.out.println("The guess is correct");
      }
      else {
         System.out.println("The guess is incorrect try again");
      }
   }
}
  • 0
    можете ли вы внести необходимые изменения в код
  • 0
    @ArpitSharma Ответ обновлен! : D
  • 0
    Спасибо за обновление. Можете ли вы сказать мне, какую строку вы изменили и какие изменения вы внесли?
  • 0
    Я просто исправляю имя атрибута в строке 17: от inptnum до inputnum.
за 0 против

U не может создать новый объект в геттере класса. U должен отправить создающий объект.

Getter.takeUserInput(obj6)
Getter.isCorrectNumber(obj6);

static void takeUserInput(NumberGuess obj6){

Scanner sc = new Scanner(System.in);
System.out.println("Enter your guess:");
obj6.b = sc.nextInt();
}
static void isCorrectNumber(NumberGuess obj4){
...
}
Codelisting
Популярные категории
На заметку программисту