Perform a learning task. Help advice, and how best to implement.
Task:
The user enters the number of bodies, the program reads until the number is correct (in my case, only the length of the number is checked, although the more checks, the better). After entering a valid number, it is necessary to sum all the numbers until one remains (Example: 0671111112, sum 21, result 3). And as a result, print the given number in a string (Example: result 3, answer "Three").
My current code is:
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; /** * Created by Dima on 22.10.2016. */ public class InputNumber { public static void main(String[] args) throws IOException { int sum = 0; int sum1 = 0; int res = 0; BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Введите номер телефона. В формате: ----------"); while (true) { String line = reader.readLine(); char[] array = line.toCharArray(); if (array.length < 10) System.out.println("Ошибка. Недостаточно цифр."); else if (array.length > 10) System.out.println("Ошибка. Много цифр."); else if (array.length == 10) { for (final char c : array) { if (!Character.isDigit(c)) { System.out.println("Ошибка. Вы ввели символ вместо цифры."); throw new IllegalArgumentException(); } sum = sum + Character.getNumericValue(c); } //System.out.println("Sum " + sum); while (sum != 0) { //Суммирование цифр числа sum1 = sum1 + (sum % 10); sum /= 10; } //System.out.println("Sum1 " + sum1); while (sum1 != 0) { //Суммирование цифр числа res = res + (sum1 % 10); sum1 /= 10; } break; } } // System.out.println("res " + res); switch (res){ case 1: System.out.println("One"); break; case 2: System.out.println("Two"); break; case 3: System.out.println("Three"); break; case 4: System.out.println("Four"); break; case 5: System.out.println("Five"); break; case 6: System.out.println("Six"); break; case 7: System.out.println("Seven"); break; case 8: System.out.println("Eight"); break; case 9: System.out.println("Nine"); break; } } }