/* package whatever; // don't place package name! */
import java.util.* ;
import java.lang.* ;
import java.io.* ;
class Ideone {
for ( int bmiIndex
: Arrays .
asList ( 5 ,
6 ,
21 ,
25 ,
29 ,
32 ,
90 ) ) { BMI bmi = BMI.getState ( bmiIndex) ;
System .
out .
println ( "Status for BMI " + bmiIndex
+ " is: " + bmi.
getDescription ( ) ) ; }
}
}
enum BMI {
UNDERWEIGHT( 0 , 19 , "Underweight" ) ,
NORMAL( 20 , 26 , "Normal" ) ,
OVERWEIGHT( 26 , 31 , "Overweight" ) ,
OBESE( 31 , 44 , "Obese" ) ,
DEAD
( 45 ,
Integer .
MAX_VALUE ,
"Probably already dead" ) ;
private final int lower;
private final int upper;
private final String description
;
private BMI
( int lower,
int upper,
String description
) { this .lower = lower;
this .upper = upper;
this .description = description;
}
int getLowerBound( ) { return lower; }
int getUperBound( ) { return upper; }
String getDescription
( ) { return description
; }
private boolean isInRange( int bmiIndex) {
return lower <= bmiIndex && bmiIndex < upper;
}
public static BMI getState( int bmiIndex) {
for ( BMI bmi : BMI.values ( ) ) {
if ( bmi.isInRange ( bmiIndex) ) {
return bmi;
}
}
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgpjbGFzcyBJZGVvbmUgewoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4gKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uIHsKCQlmb3IoaW50IGJtaUluZGV4IDogQXJyYXlzLmFzTGlzdCg1LDYsMjEsMjUsMjksMzIsOTApKXsKCQkJQk1JIGJtaSA9IEJNSS5nZXRTdGF0ZShibWlJbmRleCk7CgkJCVN5c3RlbS5vdXQucHJpbnRsbigiU3RhdHVzIGZvciBCTUkgIiArIGJtaUluZGV4ICsgIiBpczogIiArIGJtaS5nZXREZXNjcmlwdGlvbigpKTsKCQl9Cgl9Cn0KCmVudW0gQk1JIHsKCVVOS05PV04oSW50ZWdlci5NQVhfVkFMVUUsIC0xLCAiVW5rbm93biIpLAoJVU5ERVJXRUlHSFQoMCwgMTksICJVbmRlcndlaWdodCIpLAoJTk9STUFMKDIwLCAyNiwgIk5vcm1hbCIpLAoJT1ZFUldFSUdIVCgyNiwgMzEsICJPdmVyd2VpZ2h0IiksCglPQkVTRSgzMSwgNDQsICJPYmVzZSIpLAoJREVBRCg0NSwgSW50ZWdlci5NQVhfVkFMVUUsICJQcm9iYWJseSBhbHJlYWR5IGRlYWQiKTsKCQoJcHJpdmF0ZSBmaW5hbCBpbnQgbG93ZXI7Cglwcml2YXRlIGZpbmFsIGludCB1cHBlcjsKCXByaXZhdGUgZmluYWwgU3RyaW5nIGRlc2NyaXB0aW9uOwoJCglwcml2YXRlIEJNSShpbnQgbG93ZXIsIGludCB1cHBlciwgU3RyaW5nIGRlc2NyaXB0aW9uKXsKCQl0aGlzLmxvd2VyID0gbG93ZXI7CgkJdGhpcy51cHBlciA9IHVwcGVyOwoJCXRoaXMuZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbjsKCX0KCQoJaW50IGdldExvd2VyQm91bmQoKSB7cmV0dXJuIGxvd2VyO30KCWludCBnZXRVcGVyQm91bmQoKSB7cmV0dXJuIHVwcGVyO30KCVN0cmluZyBnZXREZXNjcmlwdGlvbigpIHtyZXR1cm4gZGVzY3JpcHRpb247fQoKCXByaXZhdGUgYm9vbGVhbiBpc0luUmFuZ2UoaW50IGJtaUluZGV4KXsKCQlyZXR1cm4gbG93ZXIgPD0gYm1pSW5kZXggJiYgYm1pSW5kZXggPCB1cHBlcjsKCX0KCQoJcHVibGljIHN0YXRpYyBCTUkgZ2V0U3RhdGUoaW50IGJtaUluZGV4KXsKCQlmb3IoQk1JIGJtaSA6IEJNSS52YWx1ZXMoKSl7CgkJCWlmKGJtaS5pc0luUmFuZ2UoYm1pSW5kZXgpKXsKCQkJCXJldHVybiBibWk7CgkJCX0KCQl9CgkJcmV0dXJuIFVOS05PV047Cgl9Cn0=