2016-10-26 5 views
-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 
+0

== 대신 ==를 사용하십시오. == 문자열 comarision에 equal()을 사용하십시오. – Zia

답변

0

문자열을 올바르게 비교하지 않았습니다. 문자열 비교에 String.equals() 메서드를 사용하십시오. ==은 논리적으로 동일한 객체가 아닌지 확인합니다. 다음 코드를 시도 :

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

우리가 문자열의 방법을 사용할 필요가 문자열을 처리. 즉, equals() 메소드를 사용하여 동등성을 테스트해야합니다. 또한 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); 
    } 

대신 스위치 케이스를 사용할 수도 있습니다.

관련 문제