Definite Variable Assignment
Posted: Wed Feb 20, 2013 5:20 pm
Hi,
I am little confused with below two methods
static void definiteAssignmentMethod01(boolean flag)
{
int k;
if (flag) {
k = 3;
}
else
{
k =4;
}
System.out.println(k);
}
static void definiteAssignmentMethod02(boolean flag)
{
int k;
if (flag)
k = 3;
if (!flag)
k = 4;
System.out.println(k);
}
In definiteAssignmentMethod01 the println for k is not giving any compile error while in definiteAssignmentMethod02 the println for k is giving compile error "The local variable k may not have been initialized". Why so? Isn't the if(flag) else of definiteAssignmentMethod01 not same as if(flag), if(!flag) of definiteAssignmentMethod02
I am little confused with below two methods
static void definiteAssignmentMethod01(boolean flag)
{
int k;
if (flag) {
k = 3;
}
else
{
k =4;
}
System.out.println(k);
}
static void definiteAssignmentMethod02(boolean flag)
{
int k;
if (flag)
k = 3;
if (!flag)
k = 4;
System.out.println(k);
}
In definiteAssignmentMethod01 the println for k is not giving any compile error while in definiteAssignmentMethod02 the println for k is giving compile error "The local variable k may not have been initialized". Why so? Isn't the if(flag) else of definiteAssignmentMethod01 not same as if(flag), if(!flag) of definiteAssignmentMethod02