Why isn't this local variable initialized in Java? -


i learning java , know must initialize local variable when use it. however, found code book , code is: wonder why in case variable volume not initialized?

public static double cubevolume(double sidelength) {     double volume;     if (sidelength>=0)     {         volume=sidelength*sidelength*sidelength;     }     else    {       volume=0;    }    return volume; } 

the rule must initialised before used, since on both branches of if statement volume has been initialised before returned (aka used) compiler can guarantee have been initialised before being used.

if attempted use volume before if statement again receive compilation error. equally if wasn't initialised on branches (in case both sides of if statement) error.

examples

the following examples may give incite when problem:

ok (but pointless):

double volume; //<--declared volume=6;  //<--initialised double volumeused=2*volume; 

ok:

boolean useupper=true; //<-- useupper declared , initialised double volume; if (useupper){     volume=6; //<--initialised }else{     volume=7; //<--initialised } double volumeused=2*volume; 

not ok (volume not known when used):

double volume; double volumeused=2*volume; 

not ok (volume may not known when used - if useupper false):

boolean useupper=true; double volume; if (useupper){     volume=6; //<--initialised } //volume may not initialised double volumeused=2*volume; 

not ok: used before being initialised

double volume; double volumeused=2*volume; if (sidelength>=0) {     volume=sidelength*sidelength*sidelength; //<--initialised (too late) } else {    volume=0; } return volume; 

Comments

Popular posts from this blog

PHPMotion implementation - URL based videos (Hosted on separate location) -

javascript - Using Windows Media Player as video fallback for video tag -

c# - Unity IoC Lifetime per HttpRequest for UserStore -