2013-01-17 3 views
-2
import java.util.Scanner; 

public class Rpn_calculator 
{ 
    public static void main(String[] args) 
    { 
     Scanner keyboard = new Scanner(System.in); 


     double ans = 0; 
     double n = 0; 
     double r = 0; 
     String j; 


     System.out.println(); 
     System.out.println(); 
     System.out.print("Please enter a value for n "); 
     n = keyboard.nextDouble(); 
     System.out.print("Please enter a value for r "); 
     r = keyboard.nextDouble(); 
     System.out.println("Please choose one of these operands:+,-,*,nCr,/ to  continue, or q to quit "); 
     j = keyboard.nextLine();  
     while (j != "q") 
     { 
      if(j == "+") 
       ans = n + r; 
      if(j == "-") 
       ans = n - r; 
      if(j == "*") 
       ans = n * r; 
      if(j == "/") 
       ans = n/r; 
      if(j == "nCr") 
       ans = factorial(n + r -1)/(factorial(r)*factorial(n - 1)); 
      System.out.print(ans); 

      System.out.print("Please enter a value for n "); 
      n = keyboard.nextDouble(); 
      System.out.print("Please enter a value for r "); 
      r = keyboard.nextDouble(); 
      System.out.print("Please choose one of these operands:+,-,*,nCr,/ to continue or q to quit "); 
      j = keyboard.nextLine();  
     } 
    } 
    public static double factorial(double x); 
    { 
     double sum = 1; 
     int i; 
     for (i = 0; i<= x; i++); 
     sum = sum * i; 

     return sum; 
    } 
} 

이 할당에 대한 RPN 계산기를 만들려고하는데,이 함수를 만들 필요가 있다고 생각하지만 내 계승 함수에 구문 오류가 있습니다. 그것은 "누락 된 방법 본문"이라고 말합니다."누락 된 메서드 본문"오류

또한 컴파일 할 때 문자열 입력 요청이 완전히 무시되는 이유를 모르겠습니다. 프로그램을 루프의 while에 잠급니다. 나는 정말 명백한 것을 놓치지 않기를 바란다.

+3

세미콜론 + 유효하지 않은'String'을 비교하기 위해'=='를 사용했습니다. –

+2

저는 자바 프로그래머가 아니지만 투표를 한 것으로 나타났습니다. 아마 막연한 질문 일 것입니다. 가능한 한 많은 일을하려고 노력하면서 귀하의 질문에 제목을 붙여야합니다. 나는 힘든 길을 배웠다. 그냥 머리를 올려. – William

답변

6

이 안 세미콜론의 몇 가지가 있습니다

public static double factorial(double x); // <-- This one 
{ 
    double sum = 1; 
    int i; 
    for (i = 0; i<= x; i++); // <-- This one 
    sum = sum * i; 

    return sum; 
} 

바로 서명 후 세미콜론을 넣을 때, 당신은 어떤 방법 본체, 따라서 오류가 없습니다. for 루프는 컴파일러 오류가 아니지만 빈 루프가됩니다.

== 연산자와는 달리 자바 문자열을 비교하려면 String.equals을 사용해야한다고 생각합니다.

관련 문제