Что я должен вернуть в качестве возврата?

Я только начал изучать Java. задача состоит в том, чтобы создать метод, который ведет отсчет от значения, заданного пользователем. Скорость увеличения и конечное значение также задаются пользователем. Поскольку я действительно не знаю, как это сформулировать, вот пример:

Пример:

Вход: Начальное значение (1), увеличение (2), конечное значение (10)

выход :

1,3,5,7,9

Что мне нужно указать в качестве возврата, чтобы класс отображал все подсчитанные числа (как в приведенном выше примере)?

import java.util.Scanner;
public class ForSchleifeÜbungen2 {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);

        System.out.println("Bitte Startwert eingeben:");
        long Startwert = sc.nextLong();

        System.out.println("Bitte Schrittweite eingeben:");
        long Schrittweite = sc.nextLong();

        System.out.println("Bitte Endwert eingeben:");
        long Endwert = sc.nextLong();   

        System.out.println("Ihr Startwert: " + Startwert);
        System.out.println("Ihr Schrittweite: " + Schrittweite);
        System.out.println("Ihr Endwert: " + Endwert);

        System.out.println(Schrittzähler(Startwert, Schrittweite, Endwert));


        }



    public static long Schrittzähler (long Startwert, long Schrittweite, long Endwert) {

        long Zähler;

        for(long i = Startwert; i <= Endwert; i = i + Schrittweite) {
                    System.out.println(i);
        }

        long Zähler;

    }


}

Можете ли вы объяснить, что должен делать этот метод на английском языке, и что и что он должен возвращать? Не похоже, что метод должен что-либо возвращать, поэтому я бы оценил возвращаемый тип void и не пытался распечатать его, поскольку он уже печатается.

Peter Lawrey 12.10.2018 20:11

Вместо того, чтобы печатать числа, просто добавьте их в строку, а затем верните строку. Также long Zähler; ничего не делает и ставишь 2 раза.

takendarkk 12.10.2018 20:13
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
2
79
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Создайте переменную с именем sum и присвойте ей начальное значение 0

long sum = 0; // I guess this is Zähler

На каждой итерации добавляйте текущее значение i к сумме вида:

sum = sum + i; // alternatively sum += i;

Возвратите сумму в конце метода Schrittzähler.

Подсказка: по соглашению все переменные Java записываются в camelCase, начиная с маленькой буквы (а не с заглавной). То же самое применимо к таким членам класса, как методы и поля. Документ Java

Что произвольный о начальном значении?

khelwood 12.10.2018 20:17

@khelwood мой английский ничуть не лучше OP :)

dbl 12.10.2018 20:18

OK. Ну, начальное значение для переменной суммы должно быть нулевым, чтобы вы могли получить правильный ответ. Так что это не произвольно.

khelwood 12.10.2018 20:21

Я изменил его на нейтральный, поскольку я имею в виду, что исходное значение не должно иметь никаких побочных эффектов. В случае суммирования это 0, но при умножении, например, нейтральное значение равно 1.

dbl 12.10.2018 20:23

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

public static String schrittzähler(long startwert, long schrittweite, long endwert) {
    StringBuilder builder = new StringBuilder(Long.toString(startwert));
    for(long i = startwert + schrittweite; i <= endwert; i = i + schrittweite) {
        builder.append(", ");
        builder.append(i);
    }

    return builder.toString();
}
Ответ принят как подходящий

вы уже сделали это, внесите здесь небольшие изменения. вам не нужно возвращаться, так как ваше требование - просто распечатать числа, поэтому замените это

System.out.println(Schrittzähler(Startwert, Schrittweite, Endwert));

с участием

Schrittzähler(Startwert, Schrittweite, Endwert)


и измените подпись метода следующим образом и удалите long Zähler;, это не нужно

   public static void Schrittzähler (long Startwert, long Schrittweite, long Endwert) {

        for(long i = Startwert; i <= Endwert; i = i + Schrittweite) {
                    System.out.println(i + ",");
        }

    }

Вход :

1, 2, 10

выход:

1,3,5,7,9,

Спасибо, это именно то, что я искал.

beeeerman 13.10.2018 14:38

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

public static void main(String[] args) {
    // TODO Auto-generated method stub
    System.out.println(returnNums(1,2,10));

  }
  public static String returnNums(int startNum, int increaseByNum, int endNum){
	  
     String loopedNums = Integer.toString(startNum);

     while((startNum+increaseByNum) < endNum) {

           startNum = startNum + increaseByNum;
	   loopedNums += Integer.toString(startNum)+"";
		   
      }
      return loopedNums;
   }
}

Другие вопросы по теме