Как мне вернуть значение count из моего while l oop in Java - PullRequest
0 голосов
/ 18 июня 2020

Я новичок в кодировании, и мне нужно иметь оператор return, но я изо всех сил пытаюсь вернуть значения count из моего while l oop. Я помещаю ссылку с изображением того, что я получаю, плюс мой код ниже.

Также я добавил распечатку «является множителем числа» + count, чтобы я мог видеть, что счетчик делает в то время как l oop. Что я действительно хочу сделать, так это вернуть эти значения, чтобы, когда я нажимаю "запустить", эти значения отображаются только эти значения.

Вот мой код:

package allFactors;

public class AllFactors {

    public static void main(String[] args) {
        System.out.println(printFactors(25));
    }

    public static int printFactors(int number) {
        if (number < 1) {
            System.out.println("Invalid Value ");
        }

        int count = 0;
        while (count <= number) {
            count++;

            if (number % count == 0) {
                System.out.println(count + " is factor of number ");
                continue;
            }
        }
        return count;
    }
}

мой ТЕКУЩИЙ вывод выглядит следующим образом:

1 - коэффициент числа

5 - коэффициент числа

25 - множитель числа

26

  • я помещаю только system.out.println (count + "множитель числа"); ПОТОМУ ЧТО я хочу увидеть значение моего счетчика, СЕЙЧАС я не хочу возвращать счетчик; поскольку это дает мне просто 26, я хочу ПРОСТО вернуть 1, 5 и 25. Поскольку все эти числа являются множителями 25; как только я смогу это сделать, я удалю свой system.out.println (count + "- коэффициент числа"); строка кода, потому что это не нужно. Надеюсь, этот вопрос имеет смысл

ЖЕЛАЕМЫЙ ВЫХОД

1

5

25

Ответы [ 4 ]

1 голос
/ 18 июня 2020

Здесь вы хотите вернуть все факторы числа: Таким образом, вы можете использовать список для хранения всех факторов, а затем вернуть этот список и распечатать его, код следующий -

    package allFactors;

    public class AllFactors {
       public static void main(String[] args) {
           printFactors(32).forEach(System.out::println);
       }

       public static List<Integer> printFactors(int number) {
           if (number < 1) {
                System.out.println("Invalid Value ");
           }
           List<Integer> all_factors = new ArrayList<>();
           int count = 0;
           while (count <= number) {
               count++;
               if (number % count == 0) {
                   all_factors.add(count);
                   System.out.println(count + " is factor of number ");
                   continue;
               }
           }
          return all_factors;
      }
    }
0 голосов
/ 18 июня 2020

просто возвращает счетчик с конца метода следующим образом:

public static int printFactors(int number) {
    if (number < 1) {
        System.out.println("Invalid Value ");
    }

    int count = 0;
    while (count <= number) {
        count++;

        if (number % count == 0) {
            System.out.println(count + " is factor of number ");
            continue;
        }
    }
    return count;
}
0 голосов
/ 18 июня 2020

, если вы хотите вернуть все значения, необходимые для использования некоторой коллекции, проверьте код ниже

package allFactors;

import java.util.ArrayList;
import java.util.List;

public class AllFactors {

public static void main(String[] args) {
    System.out.println(printFactors(32));
}

public static List<Integer> printFactors(int number) {
    if (number < 1) {
        System.out.println("Invalid Value ");
    }
    List<Integer> factors = new ArrayList<>();
    int count = 0;
    while (count <= number) {
        count++;

        if (number % count == 0) {
            factors.add(count);
            System.out.println(count + " is factor of number ");
        }
    }
    return factors;
 }
}
0 голосов
/ 18 июня 2020

return похож на результат вашей функции. В коде вы сказали return 0, поэтому, несмотря ни на что, он будет печатать только 0. Измените его на return count;, как вы это делаете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...