尝试创建一个计算器,在大约4年前完成了很多这样的计算,然后重新开始使用java。它只是保持终止,它不打印任何东西,运行大约5秒然后终止。任何帮助将不胜感激。
编辑:问题在于主要功能。问题已解决,谢谢!
为那些想要嘲笑我的愚蠢的人添加OOJCalculation代码
public class OOJCalculation {
int Calculation (int Num1, int Num2, String Function,int Num3){
if(Function == "+"){
Num1 += Num2 = Num3;
return Num3;
}
else if(Function == "-"){
Num1 -= Num2 = Num3;
return Num3;
}
else if(Function == "*"){
Num1 *= Num2 = Num3;
return Num3;
}
if(Function == "/"){
Num1 /= Num2 = Num3;
return Num3;
}
return Num3;
}
}
public class Main {
public static void main(){
int State = 0;
int Num1 = 0;
int Num2 = 0;
String Function = "";
Scanner reader = new Scanner(System.in);
OOJCalculation calc = new OOJCalculation();
while(State < 5){
if(State == 0){
System.out.println("Enter first number.");
Num1 = reader.nextInt();
State++;
}
if(State == 1){
System.out.println("Enter the function.");
Function = reader.next();
State++;
}
if(State == 3){
System.out.println("Enter the second number.");
Num2 = reader.nextInt();
State++;
}
if(State == 4){
calc.Calculation(Num1, Num2, Function);
System.out.println(calc);
}
}
}
}
答案 0 :(得分:0)
作为jls州:
方法main必须声明为public,static和void。它必须指定一个形式参数(第8.4.1节),其声明的类型是String数组。因此,可以接受以下任一声明:
public static void main(String[] args)
所以你的程序没有运行,因为它找不到main
。
编辑:
只是说你的代码,循环和条件不是必需的。
public static void main(String[] args ) {
int State = 0;
int Num1 = 0;
int Num2 = 0;
String Function = "";
Scanner reader = new Scanner(System.in);
System.out.println("Enter first number.");
Num1 = reader.nextInt();
reader.nextLine(); //Read the <enter> key
System.out.println("Enter the function.");
Function = reader.nextLine();
System.out.println("Enter the second number.");
Num2 = reader.nextInt();
System.out.println(Num1 + Function + Num2);
}
答案 1 :(得分:0)
您的主要方法缺少强制性参数:
public class Main {
public static void main(String[] args){
....
}
}
其次它将终止,因为它将到达块的末尾,然后没有更多的指令来运行。
您的OOJCalculation方法无效:
int calculation(int num1, int num2, String function) {
if ( "+".equals(function)) {
return num1 + num2;
} else if ( "-".equals(function)) {
return num1 - num2;
} else if ( "*".equals(function)) {
return num1 * num2;
}else if ( "/".equals(function)) {
return num1 / num2;
}
throw new IllegalArgumentException("Unknown operator");
}
它应该从lowerCase开始。对变量也使用lov \ wwer case。 CamelCase保留给类名和构造函数。您还错误地声明了返回的类型。以上实施是有效的。