Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用system.in.read方法输入两个变量_Java_Variables_Math_Input_Operation - Fatal编程技术网

Java 使用system.in.read方法输入两个变量

Java 使用system.in.read方法输入两个变量,java,variables,math,input,operation,Java,Variables,Math,Input,Operation,我是java新手。我正在用Herbert Schildt的书学习Java。我想写一个程序,要求用户输入两个变量,然后要求用户选择算术运算,然后程序执行这个运算(就像任何计算器一样)。我使用这个方法-System.in.阅读Schildts书中的,但我的程序只能要求用户输入一个变量。程序不要求用户输入第二个变量。我该怎么做 我的代码如下: class Calc { public static void main(String args[]) throws java.io.IOException

我是java新手。我正在用Herbert Schildt的书学习Java。我想写一个程序,要求用户输入两个变量,然后要求用户选择算术运算,然后程序执行这个运算(就像任何计算器一样)。我使用这个方法-
System.in.阅读Schildts书中的
,但我的程序只能要求用户输入一个变量。程序不要求用户输入第二个变量。我该怎么做

我的代码如下:

class Calc {
public static void main(String args[]) 

throws java.io.IOException {
    int a, b, result;
    System.out.print("Enter first digit ");
    a = (int) System.in.read();

    System.out.println("Enter second digit ");
    b = (int) System.in.read();

    System.out.println("Choose operation");
    System.out.println("Multiplication - 1 or Division - 2 ");

    //int r;
    result = (int) System.in.read();
        switch(result) {
            case 1:
            System.out.println(a * b);
            break;
            case 2:
            System.out.println(a / b);  
            break;
            default: System.out.println("incorrect digit");
        }
    }       
}   

“但是我的程序只能要求用户输入一个变量”-因为它不需要询问,它在输入流中仍然有足够的数据可以读取。顺便说一句,一本书建议使用
System.in.read(),因为它返回单个字节,而整数最多可占用4个字节。这真的很有限。此外,您无法从用户输入中获得正确的数字,您将获得用户输入的字符的字节表示形式(例如,如果用户输入
1
),则为
49
)。请使用扫描仪。在我的时代,它既快速又容易使用,。。。我们使用了
新的BufferedReader(新的InputStreamReader(System.in))它工作!非常感谢你!!如果你得到了你的答案,那么请通过投票来接受答案。我需要15个代表来投票。我没有
public static void main(String args[]) {

        int a, b, result;
        final Scanner sc = new Scanner(System.in);
        System.out.print("Enter first digit ");
        a = sc.nextInt();
        System.out.println("Enter second digit ");
        b = sc.nextInt();
        System.out.println("Choose operation");
        System.out.println("Multiplication - 1 or Division - 2 ");
        // int r;
        result = sc.nextInt();
        switch (result) {
            case 1:
                System.out.println(a * b);
                break;
            case 2:
                System.out.println(a / b);
                break;
            default:
                System.out.println("incorrect digit");
        }
    }