...

View Full Version : Java: cannot figure why code is not logically correct



bennycs
02-05-2004, 11:25 PM
whenever I enter y or Y and call the method it should print out OK, but it doesn't it skips all the else if's and executes the last else statement "terminating" any suggestions why? i included the import java.lang.String .....thanks

public void checkVariable()
{
if(checkString == "y" || checkString == "Y")
{
System.out.println("OK");
}
else if(checkString == "yes" || checkString == "Yes")
{
System.out.println("OK");
}
else if(checkString == "ok" || checkString == "OK")
{
System.out.println("OK");
}
else if(checkString == "sure" || checkString == "Sure")
{
System.out.println("OK");
}
else if(checkString == "why not?" || checkString == "Why not?")
{
System.out.println("OK");
}
else if(checkString == "n" || checkString == "N" || checkString == "no" || checkString == "No")
{
System.out.println("OK");
}
else
{
System.out.println("Terminating");
}
}

Jason
02-06-2004, 12:00 AM
show the input part of the code...that might be the error. Are you inputing a string or a character? you also might look at a method called toUpperCase or something like that, it converts all characters to uppercase so there will be only 1 check without all the or's ( || ) statments...


Jason

bennycs
02-06-2004, 12:02 AM
i was using strings.....i used the checkString.equals("y") and now it works! thanks

shmoove
02-06-2004, 06:39 PM
Yup. Just for general knowledge.
This condition:

(someString == "a string")
will always return false in Java, because a string is a final object in java, so every time you assign a string you are actually making a copy of it in a different object, and the condition is checking if someString is a reference to the same object as the constant string, which can't be true.

shmoove



EZ Archive Ads Plugin for vBulletin Copyright 2006 Computer Help Forum