Пока l oop работает с панелью взаимодействия, но не совсем - PullRequest
0 голосов
/ 27 марта 2020

Предполагается, что длина введенного номера будет принята за это. У меня есть операторы print для этого конкретного c случая в методе main, которые находятся вверху кода, и фактический код метода под ним.

case '1':
            System.out.printf("Enter an int number: %d\n",num);
            num = in.nextInt();
            setLength(num);
            System.out.printf("The length of %d is: %d\n",num, Program8.length);
            break;
...

 public static void setLength (int num) {
      int count = 0;
      while (num!=0) {
         num = num % 10;
         ++count;
      }
      Program8.length = count;
   }

Когда я набираю один из тестов случаи, т. е. Program8.setLength (0123400); Program8.length, я получаю правильное число, но не написано правильно. Я должен получить:

Длина 0123400: 6

Вместо этого я получаю

Длина 0is: 66, причем последние 6 светятся синим, как будто Я инициализировал переменную. Я не уверен, как получить его в нужном формате.

1 Ответ

0 голосов
/ 30 марта 2020

Если это не домашнее задание и нам не нужно доказывать нашу собственную реализацию, то мы можем решить это с помощью того, что java уже дало нам;

Program8.length=Integer.toString(num).length();

Но, если нам придется покажите кому-то нашу собственную реализацию, тогда это может показать, что вы упускаете в своей реализации, что уже указывалось в комментариях выше @DevilsHnd;

/*
reportDigits(192837465);
reportDigits(19287465);
reportDigits(1927465);
reportDigits(193765);
reportDigits(37465);
*/    

    void reportDigits(int number) {
        System.out.print(number + " has ");
        int len = 0;
        while (number > 0) {
            len++;
            number /= 10;
            //number = ((number - number %10) / 10);
        }
        System.out.println(len + " digit(s)");
    }
...