我读过“enum”,但我仍然没有得到它。有人可以向我解释它是如何工作的吗? 另外:在我的一个计算器代码中有人告诉我在代码中使用枚举, 我应该把它放在哪里?为什么?
这是我的代码:
import java.util.Scanner;
import javax.swing.JOptionPane;
public class calculatorApplet {
Scanner sc = new Scanner(System.in);
public static void main(String[] args) {
JOptionPane.showMessageDialog(null, "Welcome to the Calculator!");
String option = JOptionPane.showInputDialog(null,
"Which calculator mode do you want?");
if (option.equals("Addition")) {
Double add1 = Double.parseDouble(JOptionPane.showInputDialog(null,
"Okay type the first number(s) of your addition problem."));
Double add2 = Double.parseDouble(JOptionPane.showInputDialog(null,
"Now type the second number(s) of your addition problem."));
Double preAdd = add1 + add2;
Double Add = preAdd;
JOptionPane.showMessageDialog(null, "The sum is " + Add + ".");
} else {
JOptionPane.showMessageDialog(null, "Huh?");
}
if (option.equals("Subtraction")) {
Double sub1 = Double
.parseDouble(JOptionPane
.showInputDialog(null,
"Okay type the first number(s) of your subtraction problem."));
Double sub2 = Double
.parseDouble(JOptionPane
.showInputDialog(null,
"Now type the second number(s) of your subtraction problem."));
Double preSub = sub1 - sub2;
Double Sub = preSub;
JOptionPane.showMessageDialog(null, "The difference is " + Sub
+ ".");
} else {
JOptionPane.showMessageDialog(null, "Huh?");
}
if (option.equals("Multiplication")) {
Double mult1 = Double
.parseDouble(JOptionPane
.showInputDialog(null,
"Okay type the first number(s) of your multiplication problem."));
Double mult2 = Double
.parseDouble(JOptionPane
.showInputDialog(null,
"Now type the second number(s) of your multiplication problem."));
Double preMult = mult1 * mult2;
Double Mult = preMult;
JOptionPane.showMessageDialog(null, "The product is " + Mult + ".");
} else {
JOptionPane.showMessageDialog(null, "Huh?");
}
if (option.equals("Division")) {
Double div1 = Double.parseDouble(JOptionPane.showInputDialog(null,
"Okay type the first number(s) of your division problem."));
Double div2 = Double.parseDouble(JOptionPane.showInputDialog(null,
"Now type the second number(s) of your division problem."));
Double preDiv = div1 / div2;
Double Div = preDiv;
JOptionPane.showMessageDialog(null, "The quotient is " + Div + ".");
} else {
JOptionPane.showMessageDialog(null, "Huh?");
}
// End of if statements.
}
}
答案 0 :(得分:2)
枚举本质上是一组受约束的值。
在applet中使用的一个好方法是替换字符串“Addition”,“Subtraction”,“Multiplication”和“Division”。
使用字符串的问题在于你可以获得任何价值,因此你需要“呵呵”代码。
您可以将其替换为:
private enum Operation {ADDITION, SUBTRACTION, MULTIPLICATION, DIVISION}
然后,不是要求String,而是提供这四个选项,并返回Operation的实例。 它将保证是四个值中的一个。
然后,您可以使用“switch”语句代替一堆“if”语句,如
Operation operation = askUserForOperation();
switch(operation) {
case ADDITION:
// do addition
break;
case SUBTRACTION:
// do subtraction
break;
case MULTIPLICATION:
// do multiplication
break;
case DIVISION:
// do division
break;
}
枚举也可以有成员,比如类。 因此,如果您想将其他数据与您的枚举相关联,您可以。 例如:
private enum Operation {
ADDITION("Add"), SUBTRACTION("Subtract"), MULTIPLICATION("Multiply"), DIVISION("Divide");
public final String name;
Operation(String name) {
this.name = name;
}
}
然后,您可以执行以下操作:
Operation operation = askUserForOperation();
System.out.println("you chose: " + operation.name);
答案 1 :(得分:0)
从文档中强调我的:
枚举类型是一种特殊的数据类型,它允许变量 一组预定义的常量。变量必须等于其中一个 已为其预定义的值。常见的例子包括 指南针方向(NORTH,SOUTH,EAST和WEST的值)和 一周中的几天。
因为它们是常量,所以枚举类型字段的名称是 大写字母。
在Java编程语言中,您可以使用以下命令定义枚举类型 枚举关键字。例如,您可以指定星期几的枚举 输入:
public enum Day { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY }
只要需要表示一组固定的常量,就应该使用枚举类型。这包括天然枚举类型,如行星 我们的太阳能系统和数据集,您可以在其中了解所有可能的值 编译时间 - 例如,菜单上的选项,命令行标志, 等等。
http://docs.oracle.com/javase/tutorial/java/javaOO/enum.html
答案 2 :(得分:-1)
枚举是固定的东西,类似的东西。说,天,月等。在计算器程序中,枚举可用于支持的算术运算。喜欢加法,减法等。
enum calc{
ADD, SUB, MULTI, DIV
}
以便您可以像
一样使用它们if (option == calc.SUB)