-1

この電卓から出力が得られません。誰かが理由を教えてもらえますか?

import java.util.*;  

public class JavaMain {

public static void main(String[] args) {
    float num1, num2;
    String op;
    float d, m, a, s;

    Scanner input = new Scanner(System.in);

    System.out.println("Calculator");

    System.out.print("Please enter an operation: ");
    op = input.next();


    System.out.print("First Number: ");
    num1 = input.nextFloat();

    System.out.print("Second Number: ");
    num2 = input.nextFloat();




        if (op == "+"){a = (num1 + num2);
            System.out.println(num1 + "+" + num2 + "=" + a);
        }


        if  (op == "-"){s = (num1 - num2 );
            System.out.println(num1 + "-" + num2 + "=" + s);
        }


        if (op == "/"){d = (num1/num2);
            System.out.println(num1 + "/" +num2 + "=" + d);
        }


        if (op == "*"){m = (num1*num2);
            System.out.println(num1 + "*" + num2 + "="+ m);
        }


    }

}// why am i not getting any outputs
4

2 に答える 2

0

文字列を扱うときは、文字列メソッドを使用する必要があります。つまり、equals() メソッドで等価性をテストする必要があります。さらに、ifステートメントはif else ifステートメントのようにする必要があります...

if (op.equals("+")) {
        a = (num1 + num2);
        System.out.println(num1 + "+" + num2 + "=" + a);
    }else if(op.equals("-")){
        s = (num1 - num2 );
        System.out.println(num1 + "-" + num2 + "=" + s);
    }else if(op.equals("/")){
        d = (num1/num2);
        System.out.println(num1 + "/" +num2 + "=" + d);
    }else{//if none of the above then the operation must be the remaining
        m = (num1*num2);
        System.out.println(num1 + "*" + num2 + "="+ m);
    }

代わりにスイッチ ケースを使用することもできます。

于 2016-10-27T00:54:11.837 に答える