Как заставить мою программу выводить свое первое значение

Моя программа должна выводить числа в слова. Например, введите 10. Выведите ДЕСЯТЬ. ВСЕ остальные числа, которые я ввожу, выводятся правильно, кроме десяти. Мне просто нужна помощь, чтобы исправить это. Любая помощь будет принята с благодарностью. Когда я ввожу 10, он выходит пустым.

МОЙ КОД:


person Phineas    schedule 19.12.2013    source источник
comment
Это всего лишь один вывод, по которому мне нужна помощь.   -  person Phineas    schedule 20.12.2013
comment
о, мужчины, используйте циклы и массив строк, пожалуйста. Займет меньше места.   -  person Tomas Bisciak    schedule 20.12.2013


Ответы (4)


Причина, по которой ваша программа правильно выводит число словами для всех чисел от 11 до 99, а не для 10, заключается в том, что вы забыли следующий код в своей подпрограмме teens():

if(numInput==10){
      System.out.println("Ten");
}

Когда ввод равен «10», эта подпрограмма будет введена, но она ничего не выведет, потому что вы никогда не проверяете, равен ли ввод «10».

Кроме того, следующий код в подпрограмме tens():

if(tensDigit==10){
     System.out.println("ten");
}

Никогда не может быть достигнуто, поскольку, когда выход равен '10', вызывается подпрограмма teens(), а не подпрограмма tens().

person Adam Smith    schedule 19.12.2013

  1. Добавьте if(numInput == 10) { System.out.println("Ten");} к teens(double numInput).

  2. Зачем использовать double? Я бы использовал int.

  3. В double tensDigit = Math.floor((numInput % 100) / 10) удалите % 100, так как вы уже сделали проверку работоспособности.

  4. Удалите if(tensDigit == 10) из public static void tens(double tensDigit).

  5. Замените tryAgain и error на boolean.

  6. Работа над отступом.

person Mitesh Pathak    schedule 19.12.2013
comment
@Daemon Нет, это не так. Это ДОЛЖЕН быть ответом, но если вы посмотрите на код в вопросе, процедура tens() вводится только для чисел, равных или превышающих 20. Если число находится в диапазоне от 10 до 19 (включительно), процедура teens() вместо этого вводится. - person Adam Smith; 20.12.2013
comment
Это неправильно. То, как программа вычисляет это, 10 рассматривается как подросток. - person gla3dr; 20.12.2013
comment
@AdamSmith Извиняюсь. Это казалось правильным, но после тестирования это все еще не решило проблему. Кажется, я все еще просыпаюсь. - person Taylor Hx; 20.12.2013
comment
@Daemon Нет проблем, просто хотел указать на это, поскольку то, как написан этот фрагмент кода, не делает его очевидным. - person Adam Smith; 20.12.2013

В вашем методе Tens()... у вас есть:

if (tensDigit==10)
{  
    System.out.println("ten");  
}  

это должно быть:

if(tensDigit==1)
{  
    System.out.println("ten");  
}  
person T McKeown    schedule 19.12.2013
comment
См. комментарии к ответу Митеша Патхака, чтобы понять, почему это неверно. - person Adam Smith; 20.12.2013
comment
Вы вызываете Tens() только в том случае, если оно больше 20, в противном случае вы вызываете только TEENS() - person T McKeown; 20.12.2013

Вы вызываете Tens() только в том случае, если оно больше, чем равно 20, в противном случае вы вызываете только TEENS(), поэтому, когда вы вводите 10, становится понятно, почему Tens() не вызывается...

person T McKeown    schedule 19.12.2013