Reading Characters from StdIn [closed]

2019-09-28 02:45发布

问题:

    public class New
    {
        public static void main(String[] args)
        {
            System.out.println("Calculator");

            float a = StdIn.readFloat(); 
            char sign = StdIn.readChar();
            float b = StdIn.readFloat();
            float c = 0;

            if (sign == '+')    c = a+b;
            else if (sign == '-')   c = a-b;
            else if (sign == 'x')   c = a*b;
            else if (sign == '/')   c = a/b;

            System.out.println(c);

        }
    }

I need some help with this bit of code, I'm attempting to make a calculator that takes StdIn input with both character and float data types.

回答1:

Try the Scanner class.

Like this:

import java.util.Scanner;

public class New
{

public static void main(String[] args)
{
    System.out.println("Calculator");

    Scanner scanner = new Scanner(System.in);

    System.out.println("Enter Parameter ");
    System.out.print("a      : ");
    float a = scanner.nextFloat();

    System.out.print("+|-|*|/: ");
    String op = scanner.next();

    System.out.print("b      : ");
    float b = scanner.nextFloat();
    float c = 0;

    switch (op)
    {
        case "+":
            c = a + b;
            break;

        case "-":
            c = a - b;
            break;

        case "*":
            c = a * b;
            break;

        case "/":
            c = a / b;
            break;

        default:
            System.out.println("Illegal operant");
    }

    System.out.println("Result: " + c);
}
}

I added a switch case instead of the else ifs.