// This file collects simple examples of the Java IO (Input/Output),
// using keyboard input and screen output -- M. Branicky, 10/07/06

import java.util.Scanner; // this line needed for keyboard input processing

public class SimpleIO
{ // begin of class SimpleIO

    public static void main(String args[])
    { // begin of main method

        /////////////////////////// SIMPLE screen output /////////////////////////

        // println PATTERN: System.out.println(string_expression_to_print_w_return)
        System.out.println("Prints an entire line, plus a carriage return.");

        // print PATTERN: System.out.println(string_expression_to_print)
        System.out.print("Prints a string without ... ");
        System.out.print("a new line ... ");
        System.out.println("."); // end the line

        // print a blank line
        System.out.println();


        /////////////////////////// SIMPLE keyboard input ////////////////////////////
        
        // Variables to be used
        int    intIn;
        double doubleIn;
        String StringIn;

        // Create Scanner to obtain input from command window
        Scanner input = new Scanner( System.in );
        //      ^^^^^ note this name

        ///////////  Get user input

        // Scan an int
        System.out.print("Enter an int and press RETURN: ");
        intIn = input.nextInt();
        //      ^^^^^ note that Scanner variable's name is repeated here

        // Scan a double
        System.out.print("Enter a double (use >2 decimal places) and press RETURN: ");
        doubleIn = input.nextDouble();
        //      ^^^^^ note that Scanner variable's name is repeated here

        // Scan a String
        System.out.print("Enter a String (without spaces/tabs/returns) and press RETURN: ");
        StringIn = input.next();
        //      ^^^^^ note that Scanner variable's name is repeated here


        /////////////////////////// SIMPLE screen output with variables /////////////

        //  output of variables using println
        System.out.println("Variable out with println ...");
        System.out.println("  Entered int: " + intIn);  // \n prints the carriage return
        System.out.println("  Entered double: " + doubleIn);
        System.out.println("  Entered double to 2 decimal places: ");
        System.out.println("  Entered String: " + StringIn);
        System.out.println("  Everything: " + intIn + " " + doubleIn + " " +StringIn);
        System.out.println();

        // Same thing using formatted text
        System.out.printf("  Entered int: %d\n", intIn);  // \n prints the carriage return
        System.out.printf("  Entered double: %f\n", doubleIn);
        System.out.printf("  Entered double to 2 decimal places: %.2f\n", doubleIn);
        System.out.printf("  Entered String: %s\n", StringIn);
        System.out.printf("  Everything: %d %f %s\n", intIn, doubleIn, StringIn);

    } // end of main method

} // end of class SimpleIO
