2016-03-04 3 views
-3

У меня возникают проблемы со следующим вопросом ...Показать цифры индивидуально

«написать метод, который принимает displayDigits целое число между 1 и 99999 и отображает его в виде последовательности цифр, разделяя каждую пару цифры двумя пробелами. Например, число 4562 должно появиться 5 6 2"

Это то, что я в настоящее время, я знаю, что он отображает номера в обратном направлении, но не будет компилировать с "error: missing return statement" ошибка.

public static int displayDigits(int num1) 
{ 
    for (int i=0; num1>0; i++) 
    { 
     return(num1 % 10) 
    } 
} 

В книге отмечено, что мы используем только % и /, чтобы решить эту проблему. Помоги пожалуйста!! Я работал над этим в течение нескольких часов ...

+3

Вам нужен оператор возврата после цикла. Потому что, если num1 равно null, цикл никогда не будет выполнен. – Jens

+3

вы понимаете, что означает 'int' перед' displayDigits'? вы понимаете, как работает цикл? что делает 'return'? –

+0

Кроме того, ваш метод не пытается отображать снова, несмотря на то, что он называется «displayDigits». Более того, если вы хотите сгенерировать что-то с пробелами в этой функции, вам нужно будет вернуть строку. –

ответ

-1
public static void displayDigits(int num1) { 
    String result = ""; 
    for (int i=0; num1>0; i++) { 
     if(i>0) result = " " + result; 
     result = num1%10 + result; 
     num1 /= 10; 
    } 
    System.out.println(result); 
} 
+0

спасибо! Простой ответ, который я искал. –

-3

ли следующее:

String resultNumber = ""; 
for(int i = 0; i < num1.toString().length(); i++) 
    resultNumber += num1.toString().substring(i, i+1) + " "; 
resultNumber = resultNumber.substring(0, resultNumber.length() - 2); 

Когда num1 является 4564, то resultNumber является «4 5 6 4» и что работает для любого числа (между мин и максимальное значение целого числа)

+1

ОП указал, что задание потребовало от них решения проблемы с '%' и '/' арифметикой. –

+0

Хотя это действительно работает, пожалуйста, потрудитесь прочитать весь вопрос. OP заявила, что цель состоит в том, чтобы сделать это, используя только '%' и '/' –

-1
public static void main(String... args) 
{ 
    int i=4562; 
    String str =""; 
    int rem; 
    int q; 
    while(true) 
    { 
     q = i/10; 
     rem = i%10; 
     if(rem==0) 
      break; 
     str +=" "+rem; 
     i=q; 

    } 


    StringBuilder builder = new StringBuilder(str); 
    System.out.println(builder.reverse()); 


} 
+0

Эта программа имеет полную логику и может быть извлечена в этот метод. Не уверен, почему он признан отрицательным. –

Смежные вопросы