我无法让这个程序正常工作,它需要2个数字,然后你告诉它要做的数学类型。我写这篇文章只是为了刷新我几年没用java的记忆。这是代码:
import java.util.Scanner;
public class math {
public static void main(String[] args){
Scanner one = new Scanner(System.in);
Scanner two = new Scanner(System.in);
System.out.print("Enter a number: ");
int n1 = one.nextInt();
System.out.print("Enter a second number: ");
int n2 = one.nextInt();
System.out.print("Add, subtract, multiply, or divide? ");
String f = two.nextLine();
System.out.println(f);
if (f=="add"){
System.out.println(n1 + n2);
}else if (f=="subtract") {
if (n1>n2){
System.out.println(n1 - n2);
}else{
System.out.println(n2 - n1);
}
}else if (f=="multiply"){
System.out.println(n1 * n2);
}else if (f=="divide"){
if (n1>n2){
System.out.println(n1 / n2);
}else{
System.out.println(n2 / n1);
}
}
}
}
编辑:谢谢大家,它适用于f.equals()
您的字符串比较需要更改为使用String.equals()
而不是==
:
if (f=="add"){
至
if ("add".equals(f)){
和
}else if (f=="subtract") {
至
}else if ("subtract".equals(f)) {
等等
if (f=="add")
比较参考。你需要
if(f.equals("add"))
因为java有很多对象,主要是==用于参考比较,除非你不是为原语做的。
如果你想检查里面是否有一个字符串,
if(f.contains("asdas"))
您正在使用==
比较字符串,而是使用f.equals("add")
(与其他比较相同)。通常,==
只应用于原始数据类型而不是对象(如String
s)。
import java.util.Scanner;
public class math {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.print("Enter a number: ");
int n1 = in.nextInt();
System.out.print("Enter a second number: ");
int n2 = in.nextInt();
System.out.print("Add, subtract, multiply, or divide? ");
String f = in.nextLine();
System.out.println(f);
if (f.equals("add")) {
System.out.println(n1 + n2);
} else if (f.equals("subtract")) {
if (n1 > n2){
System.out.println(n1 - n2);
} else {
System.out.println(n2 - n1);
}
} else if (f.equals("multiply")) {
System.out.println(n1 * n2);
} else if (f.equals("divide")) {
if (n1>n2) {
System.out.println(n1 / n2);
} else {
System.out.println(n2 / n1);
}
}
}
}
此外,没有必要使用两个Scanner
实例,一个就足够了。正如旁注,字符串也有equalsIgnoreCase
方法,它将测试相等但忽略字符的情况。
而
f.equals("add");
将工作,如果我输入添加,它将无法正常工作。要解决此问题,您可以将f.equals(“word”)替换为
f.equalsIgnoreCase("add");
允许任何情况下,AdD会工作,ADD会工作,aDD会工作,等等。
希望这可以帮助!