Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

learning-java-2825378-03_07b (Code gives incorrect answer even when I type Jupiter) Help #47

Open
tnbythewood opened this issue May 20, 2021 · 6 comments

Comments

@tnbythewood
Copy link

import java.util.Scanner;

public class Main {

public static void main(String args[]) {
    String question = "What is the largest planet in the solar system?";
    String choiceOne = "Earth";
    String choiceTwo = "Jupiter";
    String choiceThree = "Mars";

    String correctAnswer;
    correctAnswer = choiceTwo;

    // Write a print statement asking the question
    {System.out.println("What is the largest planet in the solar system?");}
    // Write a print statement giving the answer choices
    {System.out.println("Choose one of the following:" + " " + "Earth," + " " + "Jupiter," + " " + "Mars");}
    // Have the user input an answer
        Scanner scanner = new Scanner(System.in);
    // Retrieve the user's input
    String input = scanner.next();
    // If the user's input matches the correctAnswer...
    if(choiceTwo.equals(input.toLowerCase()))
    // then the user is correct and we want to print out a congrats message to the user.
    {System.out.println("Congrats! You are correct!");}
    // If the user's input does not match the correctAnswer...
    else {System.out.println("Incorrect, the correct answer is" + " " + correctAnswer);}
    // then the user is incorrect and we want to print out a message saying that the user is incorrect as well as what the correct choice was.

}

}

@leonjura
Copy link

I would shorten the code, but the main issue here is that you used .toLowerCase() on input but choiceTwo points to "Jupiter" not "jupiter".

@CHANDRA-CJ
Copy link

import java.util.Scanner;
class Whileloop {
public static void main(String arg[]){
Scanner scanner = new Scanner(System.in);
String question =" what is cat? ";
String optionone =" animal ";
String optiontwo =" bird ";
String optionthree =" fruit ";

    String correctanswer = optionone;

    System.out.println(question);
    System.out.println(" your options are: " + optionone + ", " + optiontwo + " ," + optionthree + " ");
    String input = scanner.next();
    if (correctanswer.equals(input)){
        System.out.println("your Answer is correct");}
    else{
        System.out.println("Answer is not correct" + correctanswer);
    }


}

}

//having same issue. not reading the if statement

@CHANDRA-CJ
Copy link

//okay the .equals is case sensitive. problem solved

import java.util.Scanner;
class Whileloop {
public static void main(String arg[]){
Scanner scanner = new Scanner(System.in);
String question =" what is cat? ";
String optionone ="animal";
String optiontwo ="bird";
String optionthree ="fruit";

String correctanswer = optionone;

System.out.println(question);
System.out.println(" your options are: " + optionone + ", " + optiontwo + " ," + optionthree + " ");
String input = scanner.next();
if (correctanswer.equals(input)){
    System.out.println("your Answer is correct");}
else{
    System.out.println("Answer is not correct" + correctanswer);
}

}
}

@bastianhilton
Copy link

For me i removed the option .toLowerCase() and moved the scanner to right under the main (not sure if the scanner part helped or not)

import java.util.Scanner;

public class HelloWorld {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String question = "What is my name?";
String choiceOne = "Sebastian";
String choiceTwo = "Ceres";
String choiceThree = "Ambrose";

    System.out.println(question);

    String correctAnswer = choiceOne;
    
    System.out.println("Choose one of the following: " + choiceOne + ", " + choiceTwo + ", " + choiceThree + ".");

    String input = scanner.next();
    
    if (correctAnswer.equals(input)){
        System.out.println("Nice! You know me");
    } else {
        System.out.println("Sorry, You don't know me at all. My real name is " + correctAnswer);
    }
}

}

@Rishabh-Ethicalhacker
Copy link

Here the main problem is you converted your input in lower case and the value stored in String first letter is in upper case so to avoid this type of problem we can use here equalsIgnoreCase() function

import java.util.Scanner;

public class Main {

public static void main(String args[]) {
String question = "What is the largest planet in the solar system?";
String choiceOne = "Earth";
String choiceTwo = "Jupiter";
String choiceThree = "Mars";

String correctAnswer;
correctAnswer = choiceTwo;

// Write a print statement asking the question
{System.out.println("What is the largest planet in the solar system?");}
// Write a print statement giving the answer choices
{System.out.println("Choose one of the following:" + " " + "Earth," + " " + "Jupiter," + " " + "Mars");}
// Have the user input an answer
    Scanner scanner = new Scanner(System.in);
// Retrieve the user's input
String input = scanner.next();
// If the user's input matches the correctAnswer...
if(choiceTwo.equalsIgnoreCase(input))
// then the user is correct and we want to print out a congrats message to the user.
{System.out.println("Congrats! You are correct!");}
// If the user's input does not match the correctAnswer...
else {System.out.println("Incorrect, the correct answer is" + " " + correctAnswer);}
// then the user is incorrect and we want to print out a message saying that the user is incorrect as well as what the correct choice was.

}
}

@chetan7252
Copy link

Here, you need not use toLowerCase() method and instead of using equals() method, use equalsIgnoreCase() which checks if two strings are equal or not by ignoring its lower or upper case.

import java.util.Scanner;

public class Main {

public static void main(String args[]) {
String question = "What is the largest planet in the solar system?";
String choiceOne = "Earth";
String choiceTwo = "Jupiter";
String choiceThree = "Mars";

String correctAnswer;
correctAnswer = choiceTwo;

// Write a print statement asking the question
{System.out.println("What is the largest planet in the solar system?");}
// Write a print statement giving the answer choices
{System.out.println("Choose one of the following:" + " " + "Earth," + " " + "Jupiter," + " " + "Mars");}
// Have the user input an answer
    Scanner scanner = new Scanner(System.in);
// Retrieve the user's input
String input = scanner.next();
// If the user's input matches the correctAnswer...
if(choiceTwo.equalsIgnoreCase(input))
// then the user is correct and we want to print out a congrats message to the user.
{System.out.println("Congrats! You are correct!");}
// If the user's input does not match the correctAnswer...
else {System.out.println("Incorrect, the correct answer is" + " " + correctAnswer);}
// then the user is incorrect and we want to print out a message saying that the user is incorrect as well as what the correct choice was.

}

}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants