Как вызвать метод, когда есть строка для пользовательского ввода? (Java) - PullRequest
0 голосов
/ 21 марта 2020

Что говорит заголовок: я пишу программу, в которой она вычисляет и показывает сумму цифр в номере (например: 3782 сумма = 20).

Однако у меня возникают проблемы с вызовом метода, который я использовал для его вычисления, к основному методу - он выдает ошибку «java: не удается найти символ». Мне нужно использовать String для этого и не могу использовать int для моих значений.

Вот мой код:


public class digitSum {
  //MAIN
    public static void main(String[] args) {

        Scanner input = new Scanner(System.in);

        System.out.println("Please enter a whole number: ");
        String num = input.nextLine();

        //SUM METHOD CALL
           // This is the method call I'm having trouble with.
        printResult(numSum(sum));



    }

  //SUM METHOD
    static void numSum(int i, String num, int sum) {
        for (i = 0; i < num.length(); i++) {
            char a = num.charAt(0);
            char b = num.charAt(i);
            sum = a + b;
        }
        System.out.println("The digit-sum of" +num+ " is: " +sum);
        return;
    }
}

1 Ответ

3 голосов
/ 21 марта 2020

Вы никогда не определяли sum переменную:

int sum = 0;
printResult(numSum(0, num, sum));

Или даже лучше - зачем передавать аккумулятор и счетчик в функцию, если она не рекурсивная?

static void numSum(String num) {
    int sum = 0;
    for (int i = 0; i < num.length(); i++) {
        char a = num.charAt(0);
        char b = num.charAt(i);
        sum = a + b;
    }
    System.out.println("The digit-sum of" +num+ " is: " +sum);
    return;
}

Затем вызывать просто позвонив numSum(num).

PS: Вам также нужно определить printResult (или нет - numSum печатает результат).

@ chrylis -on strike- замечает, что печать результата вашего вычисления в вызывающей стороне будет еще лучше:

static int numSum(String num) {
    int sum = 0;
    for (int i = 0; i < num.length(); i++) {
        char a = num.charAt(0);
        char b = num.charAt(i);
        sum = a + b;
    }
    return sum;
}

А в методе main:

System.out.println(numSum(num));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...