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