我无法让这个程序正常工作,它需要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()
答案 0 :(得分:3)
if (f=="add")
比较参考文献。你需要
if(f.equals("add"))
因为java有很多对象,主要是==用于参考比较,除非你没有为原语做这些。
如果你想检查里面是否有字符串,
if(f.contains("asdas"))
答案 1 :(得分:3)
您要将字符串与==
进行比较,而是使用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
方法,它将测试相等但忽略字符的情况。
答案 2 :(得分:3)
您的字符串比较需要更改为使用String.equals()
而不是==
:
if (f=="add"){
要
if ("add".equals(f)){
和
}else if (f=="subtract") {
到
}else if ("subtract".equals(f)) {
等
答案 3 :(得分:0)
虽然
f.equalsIgnoreCase("add");
将起作用,如果我输入Add,它将无效。要解决此问题,您可以用
替换f.equals(“word”)XListProperties
允许任何情况,AdD将工作,ADD将工作,aDD将工作,等等。
希望这有帮助!