patternjavaMajor
Verifying a person's age
Viewed 0 times
personverifyingage
Problem
When coding I noticed I started to get into a habit of not using if-else statements when the else block only has one line of code. For example, if I have code that can be solved like this:
I will instead remove the
I'm wondering if this is a bad coding habit to get into and if I should break out of this coding habit or if it'll be fine to continue doing this. Would doing this be a bigger issue down the line when I get onto more complex programs?
Edit: Just wanted to give some more information for why part of the code is written the way it is. The snippet provided is part of a coding challenge where one of the requirements is to set any negative number inputted to 0.
public Person(int initialAge) {
if(initialAge < 0){
System.out.println("Age is not valid, setting age to 0.");
age = 0;
}
else{
age = initialAge;
}
}I will instead remove the
else statement entirely to cut down on a few lines of code. This results in my code looking more like this:public Person(int initialAge) {
age = initialAge;
if(initialAge < 0){
System.out.println("Age is not valid, setting age to 0.");
age = 0;
}
}I'm wondering if this is a bad coding habit to get into and if I should break out of this coding habit or if it'll be fine to continue doing this. Would doing this be a bigger issue down the line when I get onto more complex programs?
Edit: Just wanted to give some more information for why part of the code is written the way it is. The snippet provided is part of a coding challenge where one of the requirements is to set any negative number inputted to 0.
Solution
The biggest problem I see here is that you are printing a warning message to
Why allow negative values at all?
This way it is always up to the caller to pass a valid age instead of the method defaulting to zero which will bring other problems. It is better to have your program break early because of a bug than to have a warning message be printed out which may indicate a bug.
System.out and then using a default value for something which sounds like an Exception.Why allow negative values at all?
if (initialAge < 0) {
throw new IllegalArgumentException("Initial age cannot be negative, was specified as " + initialAge);
}
age = initialAge;This way it is always up to the caller to pass a valid age instead of the method defaulting to zero which will bring other problems. It is better to have your program break early because of a bug than to have a warning message be printed out which may indicate a bug.
Code Snippets
if (initialAge < 0) {
throw new IllegalArgumentException("Initial age cannot be negative, was specified as " + initialAge);
}
age = initialAge;Context
StackExchange Code Review Q#150215, answer score: 39
Revisions (0)
No revisions yet.