有人可以解释这一点,如果我已经去告诉我什么是错的声明?

问题描述:

我是一个初学者编程(字面上两天新),我有一个问题。我试图制作一个非常基本的计算器,用户输入第一个数字,操作(仅限+, - ,*和/),然后输入第二个数字。我很难得到操作的输入以确定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); 
    } 
} 

}

+3

哪里有'add'及其朋友定义...? – Tunaki

+2

它看起来像你要求字符串表示操作,但你正在阅读双倍,这是有点混淆。此外,如果您最终将阅读字符串不使用'=='比较它。阅读:[如何比较Java中的字符串?](http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java) – Pshemo

+0

@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) –

好了,所以这两个Tunaki和Pshemo是正确的,但我会尝试指出一个更简化的水平你的问题。

您的第一个错误是您声明变量“operation”的方式。你使用数据类型double(这是用于浮点数字,但)后来想要它保存一个字符串。

其次,我假设您正在检查用户是否在“添加”中键入然后添加这两个数字。但是这里有几个问题:

  1. 您没有使用引号的字符串所以Java正在寻找一个叫做变量添加而不是实际的“添加”。

  2. 在java中的字符串比较确实(大多数)不是这样工作的。比较两个字符串的更好方法是使用String.equals(“otherString”)。在您的例子是,如果(operation.equals(“添加”))

我希望这有助于...哦,我欢迎任何人来格式化我的帖子,我在移动,这是一个疼痛在a **