Source of RecursionDemo.java


  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: