Continuing to push the envelope here…due to plain ol’ ignorance of the technology:

```
function newAge () {
var val = prompt("What is your age?");
var val2 = parseInt(val);
switch (true) {
case (val2 < 0):
alert("Error: Negative Number");
break;
case (val === "" || val === " "):
alert("Hey! Play along!");
break;
case (isNaN(val)):
alert("Numerals only, please!");
newAge();
break;
case (val2 === 21):
alert("Happy 21st Birthday!!");
break;
case ((val2 === parseInt(Math.sqrt(val2)) * parseInt(Math.sqrt(val2))) && (val2 !== 0 && val2 !== 1)):
alert("Perfect Square! " + "(" + parseInt(Math.pow(Math.sqrt(val2), 2)) + " = " + Math.sqrt(val2) + " * " + Math.sqrt(val2) + ")");
break;
case (val2 % 2 !== 0):
alert("Your age is 'Odd!'");
break;
default:
alert(val2 + " is a nice age to be. ^_^");
}
}
newAge();
```

That works fine…but I’m interested in the case of isNaN(val); right now, that works like this:

- If initial input is NaN, then user is alerted to the fact
- Function is rerun

So I’m curious whether this is possible instead:

- If initial input is NaN, user is
*prompted*to enter a number - Function is rerun
*with*this new input in mind

I mean, given the “design” of the code as it currently stands – that is, without a drastic redesign of the logic…I’m curious whether there’s some syntax or strategy in JavaScript that could allow for the alternative I’ve outlined (understanding, of course, that “drastic” is pretty much subjective).

Thank you all again!!