希赛考试网
首页 > 软考 > 软件设计师

java控制台输入实现加减乘除

希赛网 2024-06-01 17:10:29

Java 控制台输入实现加减乘除

控制台输入是指在 Java 应用程序中,允许用户通过控制台输入信息来进行交互。Java 控制台输入可以通过 Scanner 类实现。为了通过控制台输入实现加减乘除操作,您需要使用 Scanner 类来扫描用户输入的数字和操作符,并根据操作符实现相应的操作。本文将从多个角度分析如何使用 Java 控制台输入来实现加减乘除。

实现过程

Java 控制台输入可以通过 Scanner 类实现。首先,您需要创建一个 Scanner 对象来扫描控制台输入。接下来,您可以使用 nextDouble 方法来扫描输入的数字,并使用 next 方法来扫描输入的操作符。最后,使用条件语句来根据操作符实现相应的操作。以下是一个示例代码:

```

import java.util.Scanner;

public class Calculator {

public static void main(String[] args) {

Scanner input = new Scanner(System.in);

System.out.print("Enter first number: ");

double num1 = input.nextDouble();

System.out.print("Enter second number: ");

double num2 = input.nextDouble();

System.out.print("Enter an operator (+, -, *, /): ");

char operator = input.next().charAt(0);

double result;

switch(operator) {

case '+':

result = num1 + num2;

break;

case '-':

result = num1 - num2;

break;

case '*':

result = num1 * num2;

break;

case '/':

result = num1 / num2;

break;

default:

System.out.println("Invalid operator.");

return;

}

System.out.println(num1 + " " + operator + " " + num2 + " = " + result);

}

}

```

运行上述代码,应用程序将提示用户输入两个数字和一个操作符。根据用户输入的操作符,应用程序将实现相应的操作。

代码分析

在上述示例代码中,Scanner 类被用来扫描用户输入的数字和操作符。 nextDouble 方法通过控制台读取输入的数字。 next 方法通过控制台读取输入的操作符,并返回一个字符串。 charAt 方法用于获取字符串的第一个字符,因为只有一个操作符被输入。使用 switch 语句根据操作符执行相应的操作。

开发人员还可以使用异常处理来提高代码的健壮性。如果输入无效操作符或尝试使用除以零的操作,则应用程序应该抛出异常或输出错误消息。

```

try {

switch(operator) {

case '+':

result = num1 + num2;

break;

case '-':

result = num1 - num2;

break;

case '*':

result = num1 * num2;

break;

case '/':

if(num2 == 0) {

throw new ArithmeticException("Cannot divide by zero.");

}

result = num1 / num2;

break;

default:

throw new IllegalArgumentException("Invalid operator.");

}

System.out.println(num1 + " " + operator + " " + num2 + " = " + result);

} catch(ArithmeticException e) {

System.out.println(e);

} catch(IllegalArgumentException e) {

System.out.println(e);

}

```

注意,在除法操作中,需要添加一个条件来检查被除数是否为零。如果被除数为零,则应抛出一个运行时异常。

优化代码

在此基础上,我们可以考虑如何优化代码。我们可以将操作符定义为枚举类型,这样代码将变得更加可读并且更易于扩展。以下是一个示例代码:

```

import java.util.Scanner;

public class Calculator {

enum Operator {

ADD("+"),

SUBTRACT("-"),

MULTIPLY("*"),

DIVIDE("/");

String symbol;

Operator(String symbol) {

this.symbol = symbol;

}

}

public static void main(String[] args) {

Scanner input = new Scanner(System.in);

System.out.print("Enter first number: ");

double num1 = input.nextDouble();

System.out.print("Enter second number: ");

double num2 = input.nextDouble();

System.out.print("Enter an operator (+, -, *, /): ");

String symbol = input.next();

Operator operator = null;

for(Operator op : Operator.values()) {

if(op.symbol.equals(symbol)) {

operator = op;

break;

}

}

if(operator == null) {

System.out.println("Invalid operator.");

return;

}

double result;

switch(operator) {

case ADD:

result = num1 + num2;

break;

case SUBTRACT:

result = num1 - num2;

break;

case MULTIPLY:

result = num1 * num2;

break;

case DIVIDE:

if(num2 == 0) {

System.out.println("Cannot divide by zero.");

return;

}

result = num1 / num2;

break;

default:

System.out.println("Invalid operator.");

return;

}

System.out.println(num1 + " " + operator.symbol + " " + num2 + " = " + result);

}

}

```

在此代码中,操作符定义为一个枚举类型。枚举类型实际上是一种特殊的类,它限制了可选值,并将这些值定义为类的常量。在此代码中,我们还定义了一个表示操作符的 symbol 字段。此字段作为枚举类型的构造函数参数进行初始化。 symbol 字段将用于在输出时显示操作符。

在执行运算之前,我们使用循环迭代枚举类型中的所有操作符,找到与用户输入的操作符匹配的操作符。如果未找到匹配项,则输出一条错误消息。

代码

扫码咨询 领取资料


软考.png


软件设计师 资料下载
备考资料包大放送!涵盖报考指南、考情深度解析、知识点全面梳理、思维导图等,免费领取,助你备考无忧!
立即下载
软件设计师 历年真题
汇聚经典真题,展现考试脉络。精准覆盖考点,助您深入备考。细致解析,助您查漏补缺。
立即做题

软考资格查询系统

扫一扫,自助查询报考条件