if (base case 1) // return some simple expression else if (base case 2) // return some simple expression else if (base case 3) // return some simple expression else if (recursive case 1) { // some work before // recursive call // some work after } else if (recursive case 2) { // some work before // recursive call // some work after } else { // recursive case 3 // some work before // recursive call // some work after }