2012-09-17 45 views
0

如何在代碼行的Java:糾錯碼計算器

char oper = entrada.next(); //ERROR HERE 

糾錯:

/* 
* Calculator 
*/ 
package list01; 

import java.util.Scanner; 

public class ex04 { 

    public void metodoEx04() { 
     Scanner entrada = new Scanner(System.in); 
     System.out.print("First number: "); 
     int A = entrada.nextInt(); 
     System.out.print("Second number: "); 
     int B = entrada.nextInt(); 
     System.out.print("Operator +, -, *, ou /: "); 
     char oper = entrada.next(); //ERROR HERE 
     double res = calculadora(A, B, oper); 
     System.out.println(res); 
    } 

    static double calculadora(int n1, int n2, char operador) { 
     double res; 
     switch (operador) { 
      case '+': 
       res = soma(n1, n2); 
       return res; 
      case '-': 
       res = subtracao(n1, n2); 
       return res; 
      case '*': 
       res = multiplicacao(n1, n2); 
       return res; 
      default: 
       res = divisao(n1, n2); 
       return res; 
     } 
    } 

    static double soma(int num1, int num2) { 
     double res; 
     res = num1 + num2; 
     return res; 
    } 

    static double subtracao(int num1, int num2) { 
     double res; 
     res = num1 - num2; 
     return res; 
    } 

    static double multiplicacao(int num1, int num2) { 
     double res; 
     res = num1 * num2; 
     return res; 
    } 

    static double divisao(int num1, int num2) { 
     double res; 
     if (num2 != 0) { 
      res = num1/num2; 
      return res; 
     } else { 
      System.out.println("Impossible."); 
      return 0.0; 
     } 
    } 
} 
+2

總是發佈你的完整的錯誤信息,像這樣的問題。至於錯誤的原因,請檢查[Scanner API](http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html),看看什麼類型的對象'掃描儀#next()'返回。你分配返回的值是什麼類型的變量? –

回答

1

未來給出了一個字符串,你想有一個字符。你可以嘗試

char oper = entrada.next().charAt(0); 
+0

感謝#Theodore Norvell和#Doug Ramsey。 –

1
public String next() 

next()返回一個String對象,如果要存儲一個字符,你需要:

entrada.next().charAt(0); 

在將來發布的錯誤時,請張貼實際的錯誤。