计算器在java,sin cos棕褐色婴儿床

时间:2015-11-21 06:39:37

标签: java calculator

我为罪,cos,棕褐色,婴儿床写的“开关盒”女巫当我在操作员中输入它并且进入第二个数字时不起作用。 我的错在哪里? 这是我的代码:

import java.util.Scanner;

public class MainClass {

    public static void main(String args[]){
        Scanner NumInput = new Scanner(System.in);
        double firstNum = 0;
        double secondNum = 0;
        double result = 0;
        System.out.println("Enter first number: ");
        firstNum = NumInput.nextDouble() ;
        System.out.println("Enter operator: ");
        String amalgar = NumInput.next();
            if (amalgar == "sin" || amalgar == "cos" || amalgar == "tan" || amalgar == "cot"){
            switch(amalgar){
        case "sin":
            result = Math.toRadians(Math.sin(firstNum));
            break;
        case "cos":
            result = Math.toRadians(Math.cos(firstNum));
            break;
        case "tan":
            result = Math.toRadians(Math.tan(firstNum));
            break;
        case "cot":
            result = (Math.toRadians(Math.cos(firstNum))/Math.toRadians(Math.sin(firstNum)));
            break;

        default : 
            break;



            }
            System.out.println(Math.toRadians(result));
            }
            else

                System.out.println("Enter second number: ");
                secondNum = NumInput.nextDouble();  
            switch (amalgar){
        case "+":
            result = firstNum + secondNum;
            break;
        case "-":
            result = firstNum - secondNum;
            break;
        case "*":
            result = firstNum * secondNum;
            break;
        case "/":
            result = firstNum / secondNum;
            break;

        default:
            System.out.println("nemifahmam chi neveeshti");
        }

            System.out.println(result);

    }
}

1 个答案:

答案 0 :(得分:1)

问题在于如果条件:

if (amalgar == "sin" || amalgar == "cos" || amalgar == "tan" || amalgar == "cot"){

如果您拥有相同的对象(即两个相同的引用),则==仅评估为true,但"sin"(或"cos"等)和amalgar始终为2不同的对象。您应该使用equals()来比较该值。 (见How do I compare strings in Java?

更好的是,根本不使用if-else块。使用开关,因为如果你不匹配这四个中的一个,你就不会评估除default案例之外的任何事情,这是空的。