2014-12-14 3 views
0

Я получаю эту ошибку, которая для меня выглядит так, как будто я неправильно вызываю метод. Я просмотрел прошлые ответы здесь, но ни один из них не затронул мою проблему, насколько я могу судить. Это для проекта класса. Я понимаю, что моя математика в методе, скорее всего, неверна, но мне нужно, чтобы все остальное работало, тогда нужно иметь дело с неправильным выводом. Большое спасибо!Я получаю сообщение Не могу найти ошибку символа, которую я не могу решить

Вот мой код:

import java.util.*; 

public class PrintOutNumbersInReverse { 

    static Scanner console = new Scanner(System.in); 

    public static void main(String[] args) { 
     // Gather Number 
     System.out.print("Enter a number between 2 and 10 digits long "); 
     int num = console.nextInt(); 

     System.out.println("your number is: " + num); 

     // call method 
     System.out.println("Your number in reverse is: " + reverse); 

    } 

    public static int reverse(int num, int rNum) { 
     rNum = 0; 
     while (num != 0) { 
      rNum = rNum + num % 10; 
      num = num/10; 
     } 
    } 
} 

И моя ошибка Сообщение:

PrintOutNumbersInReverse.java:28: error: cannot find symbol System.out.println ("Your number in reverse is: " +reverse); ^ symbol: variable reverse location: class PrintOutNumbersInReverse 1 error

+2

Добро пожаловать на переполнение стека. 'reverse' - это метод - вы используете его, как будто это переменная. (Кроме того, на данный момент он ничего не возвращает, и неясно, почему он будет принимать два параметра ...) Кроме того, ваш код очень трудно прочитать на данный момент - пожалуйста, приложите немного больше усилий для форматирования кода прежде чем вы нажмете сообщение. –

+0

Как @JonSkeet сказал, вы должны изучить [методы понимания] (https://docs.oracle.com/javase/tutorial/java/javaOO/classvars.html) –

+0

Спасибо за ответ. Я прошу прощения за код, это только 6 или 7-я программа, которую я когда-либо писал. Итак, если я использую это неправильно, как его следует называть. Я попытался сделать это, как показано в нашей книге, но, очевидно, что-то не хватает. – chevelleguy64

ответ

0

Изменить реализацию метода:

public static int reverse (int num) 
{ 

int rNum = 0; 
... 

return rNum; 
} 

и место, что звонит этот метод:

System.out.println ("Your number in reverse is: " +reverse(num)); 

Тогда должно быть хорошо

+0

Большое спасибо Mateusz (и всем остальным)! Это заставило его работать, и теперь мне просто нужно исправить свою математику. Отличный день! – chevelleguy64

0

Когда копия вставляя это в затмение, я заметил 2 вещи:

1.) ваш метод reverse() не возвращает Int, но это должно, потому что подпись метода говорит так: public staticintreverse(int num, int rNum). Может быть, возвращение rNum, или как бы там ни была логика?

2.) второй, вы не указали какую-либо переменную reverse в методе main. Может быть, вам нужен параметризованный звонок reverse()?

Также похоже, что вы хотите использовать reverse() метод rNum как выходной параметр. В java вы не можете передавать примитивы по ссылке, поэтому, что бы вы ни делали с rNum внутри метода, изменения будут присутствовать только в области метода. Таким образом, вы можете что-то вычислить и на самом деле return результаты ваших расчетов.

0

Вы должны использовать reverse как метод, а не переменную. Кроме того, вы передаете переменную, которая не используется: rNum. Вы видите в reverse(int num, int rNum); сразу после запуска, он устанавливает rNum в 0. Так зачем передавать число, которое будет установлено в ноль?

Я сделал это с моего телефона, но это должно работать код:

import java.util.*; 

public class PrintOutNumbersInReverse { 

    static Scanner console = new Scanner(System.in); 

    public static void main(String[] args) { 
     // Gather Number 
     System.out.print("Enter a number between 2 and 10 digits long "); 
     int num = console.nextInt(); 

     System.out.println("your number is: " + num); 

     // call method 
     System.out.println("Your number in reverse is: " + reverse(num)); //<-- notice how this is a method cause it has "()" 

} 

public static int reverse(int num) { //<-- this has "int num" in the "()". This is a parameter. 
    int rNum = 0; 
    while (num != 0) { 
     rNum = rNum + num % 10; 
     num = num/10; 
    } 
    } 
} 
+0

Спасибо Binghammer, я попробовал много таких комбинаций, но теперь, когда вы его показываете, я понимаю это намного лучше. – chevelleguy64