I'm trying to teach my friend Java. I tried this simple calculator.
public static void main(String[] args) {
    boolean powerOn = true;
    while(powerOn) {
        @SuppressWarnings("resource")
        Scanner userInput = new Scanner(System.in);
        System.out.println("Welcome to the calculator\nPlease enter a number (Enter 3.14 for PI)"); 
        double firstNumber = userInput.nextDouble();
        if(firstNumber == 3.14) firstNumber = Math.PI;
        System.out.println("Please enter an operation(+,-,*,/, Square Root)");
        String operation = userInput.next();
        if(operation.equalsIgnoreCase("Square Root")) System.out.println(Math.sqrt(firstNumber));
        else {
            System.out.println("Please enter another number");
            double secondNumber = userInput.nextDouble();
            if(secondNumber == 3.14) secondNumber = Math.PI;
            if (operation.equals("+")) {
                if(firstNumber == 9 && secondNumber == 10) System.out.println("21");
                else System.out.println(firstNumber+secondNumber); 
            }
            else if (operation.equals("-")) System.out.println(firstNumber-secondNumber);
            else if (operation.equals("*")) System.out.println(firstNumber*secondNumber);
            else if (operation.equals("/")) System.out.println(firstNumber/secondNumber);
        }
        System.out.println("Power off?");
        String off = userInput.next();
        if(off.contains("y")) System.exit(1);
    }
}
If you do square root, it prints enter another number and then throws an exception... I know what's happening, but why and how do I prevent it?
And just a side note can someone explain to me the difference between Scanner#next() and Scanner#nextLine?
 
     
     
     
     
    