Hello and welcome to our community! Is this your first visit?
Register
Enjoy an ad free experience by logging in. Not a member yet? Register.
Results 1 to 4 of 4
  1. #1
    New Coder
    Join Date
    Jun 2003
    Location
    USA
    Posts
    13
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Java: cannot figure why code is not logically correct

    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");
    }
    }

  • #2
    Regular Coder
    Join Date
    Feb 2003
    Location
    California
    Posts
    925
    Thanks
    0
    Thanked 0 Times in 0 Posts
    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

  • #3
    New Coder
    Join Date
    Jun 2003
    Location
    USA
    Posts
    13
    Thanks
    0
    Thanked 0 Times in 0 Posts

    i found out what was wrong

    i was using strings.....i used the checkString.equals("y") and now it works! thanks

  • #4
    Regular Coder
    Join Date
    Dec 2003
    Posts
    367
    Thanks
    0
    Thanked 0 Times in 0 Posts
    Yup. Just for general knowledge.
    This condition:
    Code:
    (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


  •  

    Posting Permissions

    • You may not post new threads
    • You may not post replies
    • You may not post attachments
    • You may not edit your posts
    •