0

New to Java, taking college course.

I am writing a program that asks users for their internet package so it can calculate their bill. Here's the snippet where I ask for their package, and have to confirm that they have answered either A, B, or C.

For some reason, it enters the while loop even if I enter "a"..

  //Create Keyboard scanner
  Scanner keyboard = new Scanner(System.in);

  //Get user package
  String servicePackage;
  System.out.println("Enter your internet package: A, B, or C");
  servicePackage = keyboard.nextLine();
  servicePackage = servicePackage.toUpperCase();
  System.out.println(servicePackage);//This line is for debugging

  //Validate User Package Input
  while (servicePackage != "A" && servicePackage != "B" && servicePackage != "C"){
     System.out.println("Please enter a valid internet package (A, B or C)");
     servicePackage = keyboard.nextLine();
     servicePackage = servicePackage.toUpperCase();
     System.out.println(servicePackage);//for debugging
  }
  System.out.println(servicePackage);//for debugging

Not sure if it's relevant, but I am using jGrasp.

Any help is appreciated!

user2888805
  • 23
  • 1
  • 6

1 Answers1

0

"string" (declared) == "string" return false. You should use equals ("string".equals("string") return true) or equalsIgnoreCase (for example: "STRING".equalsIgnoreCase("string") return also true)

barwnikk
  • 950
  • 8
  • 14