有人可以解释这一点,如果我已经去告诉我什么是错的声明?
问题描述:
我是一个初学者编程(字面上两天新),我有一个问题。我试图制作一个非常基本的计算器,用户输入第一个数字,操作(仅限+, - ,*和/),然后输入第二个数字。我很难得到操作的输入以确定if语句的答案,所以有人可以用非常简单的术语来解释它吗?有人可以解释这一点,如果我已经去告诉我什么是错的声明?
package learn;
import java.util.Scanner;
class calculator{
public static void main(String args[]){
Scanner input = new Scanner(System.in);
double termOne, operation, termTwo, answer;
System.out.println("Enter first term: ");
termOne = input.nextDouble();
System.out.println("Enter operation (Valid operations are : ");
operation = input.nextDouble();
System.out.println("Etner second term: ");
termTwo = input.nextDouble();
if (operation == add) {
answer = termOne + termTwo;
System.out.println(answer);
} else if (operation == subtract) {
answer = termOne - termTwo;
System.out.println(answer);
} else if (operation == divide) {
answer = termOne/termTwo;
System.out.println(answer);
} else (operation == multiply) {
answer = termOne * termTwo;
System.out.println(answer);
}
}
}
答
好了,所以这两个Tunaki和Pshemo是正确的,但我会尝试指出一个更简化的水平你的问题。
您的第一个错误是您声明变量“operation”的方式。你使用数据类型double(这是用于浮点数字,但)后来想要它保存一个字符串。
其次,我假设您正在检查用户是否在“添加”中键入然后添加这两个数字。但是这里有几个问题:
您没有使用引号的字符串所以Java正在寻找一个叫做变量添加而不是实际的“添加”。
在java中的字符串比较确实(大多数)不是这样工作的。比较两个字符串的更好方法是使用String.equals(“otherString”)。在您的例子是,如果(operation.equals(“添加”))
我希望这有助于...哦,我欢迎任何人来格式化我的帖子,我在移动,这是一个疼痛在a **
哪里有'add'及其朋友定义...? – Tunaki
它看起来像你要求字符串表示操作,但你正在阅读双倍,这是有点混淆。此外,如果您最终将阅读字符串不使用'=='比较它。阅读:[如何比较Java中的字符串?](http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java) – Pshemo
@Pshemo [在JDK 7发行版中,您可以在 'public String getTypeOfDayWithSwitchStatement(String dayOfWeekArg)中使用一个String对象String typeOfDay; switch(dayOfWeekArg){ case“Monday”: typeOfDay =“开始工作周”; 休息; case“Tuesday”: case“Wednesday”:'](https://docs.oracle.com/javase/8/docs/technotes/guides/language/strings-switch.html) –