我试图使用基本的Java代码构建一个简单的计算器,并更好地理解OOP,所以,我这样写:
import java.util.Scanner;
public class Calc {
public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("Enter a number: "); int num1 = input.nextInt();
System.out.println("Enter an operation: ");
String opr;
opr = input.nextLine();
if(opr == "+") {
System.out.println("Enter another Number: ");
int num2 = input.nextInt();
Operation op = new Operation(num1, num2);
op.addition();
} else if (opr == "-") {
System.out.println("Enter another Number: ");
int num2 = input.nextInt();
Operation op = new Operation(num1, num2);
op.subtraction();
} else if (opr == "*") {
System.out.println("Enter another Number: ");
int num2 = input.nextInt();
Operation op = new Operation(num1, num2);
op.multiplication();
} else if (opr == "/") {
System.out.println("Enter another Number: ");
int num2 = input.nextInt();
Operation op = new Operation(num1, num2);
op.division();
} else {
System.out.println("Please, Enter a valid operation!");
}
}
和另一个用于数学运算的类:
import java.util.Scanner;
public class Operation {
static int Num1; static int Num2;
Scanner input = new Scanner(System.in); public Operation(int x, int y) { x = Num1; y = Num2; }
public void addition() {
System.out.println(Num1 + Num2);
}
public void subtraction() {
System.out.println(Num1 - Num2);
}
public void multiplication() {
System.out.println(Num1 * Num2);
}
public void division() {
System.out.println(Num1 / Num2);
}
但它不接受操作输入,而是直接进入下一行代码,如下所示:
Enter a number: 4 Enter an operation: Please, Enter a valid operation!
任何人都可以指出我的错误吗?
注意:我一般是Java和编程方面的新手。所以,如果我的代码不是最好的,请不要介意我,我还在学习。
问题来源:stackoverflow
使用 input.next 而不是 input.nextLine nextNext接受数字和换行符\n。在开关ts中检查换行符。
答案来源:stackoverflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。