public class RecursionDemo
1: //RecursionDemo.java
2:
3: import java.util.Scanner;
4:
5: public class RecursionDemo
6: {
7: public static void main(String[] args)
8: {
9: System.out.println("Enter an integer:");
10: Scanner keyboard = new Scanner(System.in);
11: int number = keyboard.nextInt();
12: System.out.println("The digits in that number are:");
13: displayAsWords(number);
14: System.out.println();
15:
16: System.out.println("If you add ten to that number, ");
17: System.out.println("the digits in the new number are:");
18: number = number + 10;
19: displayAsWords(number);
20: System.out.println();
21: }
22:
23: /**
24: * Precondition: number >= 0.
25: * Displays the digits in number as words.
26: */
27: public static void displayAsWords
28: (
29: int number
30: )
31: {
32: if (number < 10)
33: System.out.print(getWordFromDigit(number) + " ");
34: else //number has two or more digits
35: {
36: displayAsWords(number / 10);
37: System.out.print(getWordFromDigit(number % 10) + " ");
38: }
39: }
40:
41: /**
42: * Precondition: 0 <= digit <= 9.
43: * Returns the word for the argument digit.
44: */
45: private static String getWordFromDigit
46: (
47: int digit
48: )
49: {
50: String result = null;
51: switch (digit)
52: {
53: case 0:
54: result = "zero";
55: break;
56: case 1:
57: result = "one";
58: break;
59: case 2:
60: result = "two";
61: break;
62: case 3:
63: result = "three";
64: break;
65: case 4:
66: result = "four";
67: break;
68: case 5:
69: result = "five";
70: break;
71: case 6:
72: result = "six";
73: break;
74: case 7:
75: result = "seven";
76: break;
77: case 8:
78: result = "eight";
79: break;
80: case 9:
81: result = "nine";
82: break;
83: default:
84: System.out.println("Fatal Error.");
85: System.exit(0);
86: break;
87: }
88: return result;
89: }
90: }