Source of RecursionDemo.java


  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: }