2016-03-04 3 views
0

Я получаю несколько «неуместная конструкция» ошибки и «Удалить токен» ошибок. Описание этих ошибок на сайте Oracle довольно расплывчато. Я не могу понять, в чем проблема, но похоже, что у меня есть одна скобка, которая отбрасывает всю программу. Кто-нибудь может понять, что я делаю неправильно?Несложная конструкция

public class divisorCalc2 { 
    import java.util.Scanner; //Imports scanner class 

    public static int gcd(int num1, int num2) { 
     if (num2 == 0) { 
      return num1; 
     } else {  
      return gcd(num2, num1 % num2); 
     } 
    } 

    public static void main(String[] args) { 
     System.out.println("Please enter first integer:"); 
     int firstInt = in.nextInt(); 

     System.out.println("Please enter second integer:"); 
     int secondInt = in.nextInt(); 

     System.out.println(gcd(firstInt,secondInt)); 

     in.close(); //Closes Scanner 
    } 
} 
+0

Вы не можете определить методы внутри методов, если у вас нет внутреннего класса – Ramanlfc

+1

Импорт не может быть определен в классе. сначала поставьте пакет, затем укажите импорт, затем определите класс ниже. голосование закрывается как опечатка. –

+0

Ум, теперь 'in' не определено, и вы не используете' Scanner' где-нибудь после его импорта. Связаны ли эти два факта? –

ответ

2

У вас не может быть метода внутри другого. Возьмите весь код gcd вне основного.

main (...){ 
    ... 
} 

gcd (...){ 
    ... 
} 
+0

Помните, что ОП изменил свой вопрос об этой части. – Tom

+0

Получил, спасибо! –

0

У вас есть метод внутри другого, переместить его вне основной метод, вы не имеете сканер заявил также, вы импортировали класс сканера, но еще не определен.

Здесь:

public static int gcd(int num1, int num2) { 
     if (num2 == 0) { 
      return num1; 
     } else { 
      return gcd(num2, num1 % num2); 
     } 
    } 

    public static void main(String[] args) { 

     Scanner input = new Scanner(System.in); 

     System.out.println("Please enter first integer:"); 
     int firstInt = input.nextInt(); 

     System.out.println("Please enter second integer:"); 
     int secondInt = input.nextInt(); 

     System.out.println(gcd(firstInt, secondInt)); 

     input.close(); //Closes Scanner 
    } 
0

В определении класса пакет декларация первая линия, любой импорт (s) является второй линией. Далее идет «открытый класс ...». Ваша программа здесь не работает. Возьмите заявку на импорт выше, сразу после упаковки.

Смежные вопросы