Hi Theodore, AFAICS there is nothing wrong with your "isNumber" method (besides that Integer.parseInt(String s) and catching the NumberFormatException is much shorter).
I have no proof at hand, but I remember that each recursive call has a loop equivalent and vice versa. So assume you have a something like public void printNumber(int start, int stop) { for (int i = start; i<=stop; i++) { System.out.println(i); } } You can make a recursive version like public void printNumbersRecursive(int start, int stop) { if (start <= stop) { System.out.println(start); printNumbersRecursive(start+1, stop); } } In this case I would aways prefer the loop-version. It somehow feels more natural to me. But there are problems where recursion can be very handy. E.g. if you have non-linear structures like trees. Assume the following class: public class MyNode { private String name; private NSMutableArray<MyNode> children = new NSMutableArray<MyNode>(); public MyNode(String name) { this.name = name; } public void addToChildren(MyNode child) { children.addObject(child); } } and you build the following structure with it public static void main(String[] args) { MyNode root = new MyNode("root"); MyNode child1 = new MyNode("child1"); root.addToChildren(child1); MyNode child2 = new MyNode("child2"); root.addToChildren(child2); MyNode child11 = new MyNode("child11"); child1.addToChildren(child11); MyNode child12 = new MyNode("child12"); child1.addToChildren(child12); } If you want to do something on all nodes (also called 'traversion'), e.g. write a debug info to the console, I would code this like public void debug() { System.out.println("node: "+name); System.out.println("children: ["); for (MyNode child : children) { // recursion child.debug(); } System.out.println("]"); } A call of root.debug() in the main method would produce node: root children: [ node: child1 children: [ node: child11 children: [ ] node: child12 children: [ ] ] node: child2 children: [ ] ] A non-recursive version of the debug method would be much more complicated. Jm2c C.U.CW -- What are the three enemies of a programmer? Sunlight, oxygen, and the appalling roar of the birds. On 12.11.2014, at 12:32, Theodore Petrosky <tedp...@yahoo.com> wrote: > I am trying like mad to learn more. So I have decided to put time into > Recursive algorithms. I do not want to start a conversation whether or not > one should or should not use recursion in this example. That is a > conversation for another day. I don’t believe that using it here will impact > the app at all. > > As an experiment I am trying to use one in my validation method. Would one of > you great minds take a look at this. It works, but I feel I am jumping > through too many hoops. This is my first attempt so have a little pity: > > > public String validateHeight(String value) throws ValidationException { > value = value.trim(); > > if (!isNumber(value)) { > throw new ValidationException("There can be only > numbers in the Height field! (value was " + value +")"); > } > return value; > } > > private boolean isNumber(String stringToCheck) { > if (stringToCheck.length() == 0) return true; > if (!Character.isDigit(stringToCheck.charAt(0))) return false; > return isNumber(stringToCheck.substring(1, > stringToCheck.length())); > } > > > My desire is to get better at this and learning recursion is very important. > Also, when I look at other people’s code, there are times that there are > recursive calls and I struggle to understand them. > _______________________________________________ > Do not post admin requests to the list. They will be ignored. > Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) > Help/Unsubscribe/Update your Subscription: > https://lists.apple.com/mailman/options/webobjects-dev/cw%40i4innovation.de > > This email sent to c...@i4innovation.de >
signature.asc
Description: Message signed with OpenPGP using GPGMail
_______________________________________________ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com