Обратное число после ввода целого числа и его удвоения

#java #integer #reverse

#java #целое число #обратное

Вопрос:

инструкции следующие: введите целое число, затем удвоите целочисленное значение, затем вызовите свой метод static void reverse ( long i ) . Метод void reverse(long i) отображает целое число в обратном порядке, заканчивающееся новой строкой.

Мне нужна помощь в изменении целого числа. Я думаю, что у меня есть остальная часть кода правильно. Но, поправьте меня, если я ошибаюсь.

     import java.util.Scanner;

public class Exercise5_3M {
    public static void reverse(String[] args) {
    Scanner input = new Scanner(System.in);

    //input an integer
    int num= input.nextInt();
    int result=0;

     //Double the intger
    while(num>0){
    result= num *2;

        }


System.out.print(result);
    }
}
  

Ответ №1:

во-первых, вам нужно void reverse( long i) вместо void reverse(String[] args) этого во-вторых

 while(num>0){
    result= num *2;
}
  

никогда не заканчивается, потому что num никогда не меняется

Комментарии:

1. И если вы считаете, что нет причин ждать некоторое время. Это было бы просто удвоить.

2. ммм, это странно. Я пробовал это раньше — ввод обратного (длинный i), и это выдало мне ошибку компиляции. Возможно, я что-то изменил и не осознал этого. Спасибо! Сейчас попытаюсь разобраться со второй частью. Разве я не говорю в своем коде, что число больше нуля, и результат будет равен числу, умноженному на два. Как это никогда не заканчивается?

3. @user972077 while Тело цикла выполняется до тех пор, пока условие больше не станет истинным (или, другими словами, оно выполняется, пока условие истинно — отсюда while цикл). Если значение num никогда не изменяется, это условие всегда будет истинным для любого ввода, большего 0, поэтому тело будет просто выполняться снова и снова. Это то, что называется бесконечным циклом.

Ответ №2:

Ваш метод должен называться «main», если вы хотите выполнить его при запуске. Во-вторых, вы создали бесконечный цикл с вашим while, когда sb вводит положительное число. Отрицательное значение всегда возвращает 0. В-третьих, у вас нет метода с именем reverse (long i). Четвертая проверка границ. Разрешены только положительные числа или также отрицательные?

Для подсказки: вы можете изменить его несколькими способами. Преобразуйте ваше число в строку или массив символов и переверните его. Или вы хотите взглянуть на оператор mod «%».

Комментарии:

1. Я понимаю концепции, но когда я пытаюсь их записать, я постоянно получаю ошибку компиляции. Я понимаю java — концептуально — но так сложно на самом деле поместить это в код!