2017-05-07 56 views
-1

嘿傢伙我是初學java的還在學習。我有一個關於函數的問題。所以我創造只是爲了好玩一個基本的計算器使用函數的基本Java計算器(初學者)

package calculator; 
import java.util.Scanner; 

public class Calculator { 

public void printMenu() { 
    System.out.println("Basic Calculator"); 
    System.out.println("A. Addition"); 
    System.out.println("B. Subtraction"); 
    System.out.println("C. Multiplication"); 
    System.out.println("D. Division"); 
    System.out.println("Enter letter of operation"); 
} 

public void enterNumbers() { 
    System.out.println("Enter first number:"); 
    int n1 = scan.nextInt(); 
    System.out.println("Enter second number:"); 
    int n2 = scan.nextInt(); 
} 

public static void main(String[] args) { 
    Scanner scanner = new Scanner(System.in); 
    Calculator calc = new Calculator(); 
    calc.printMenu(); 
    String choice = scanner.nextLine(); 
    Calculator operation = new Calculator(); 

    switch (choice) { 
     case "a": 
     case "A": 
      System.out.println("Addition"); 
      operation.enterNumbers(); 
    } 
    } 
} 

但是當我測試它,當我進入方案一個是我的另外它顯示了這一點:

run: 
Basic Calculator 
A. Addition 
B. Subtraction 
C. Multiplication 
D. Division 
Enter letter of operation: 
A 
Addition 
Enter first number: 
Exception in thread "main" java.lang.UnsupportedOperationException: Not supported yet. 
    at calculator.scan.nextInt(scan.java:19) 
    at calculator.Calculator.enterNumbers(Calculator.java:29) 
    at calculator.Calculator.main(Calculator.java:46) 
/Users/juancarlosraymundo/Library/Caches/NetBeans/8.2/executor-snippets/run.xml:53: Java returned: 1 
BUILD FAILED (total time: 3 seconds) 

有沒有當我是一個錯誤m調用函數enterNumbers?非常感謝你,我希望瞭解更多。

+1

掃描儀必須是一個場,掃描不存在 –

回答

0

掃描儀必須是一個字段,掃描不存在

我下類線 定義掃描器和在enterNumbers()方法改變scannscanner

package calculator; 

import java.util.Scanner; 

/** * * @author juancarlosraymundo */ 
public class Calculator { 
Scanner scanner = new Scanner(System.in); 

public void printMenu() { 
    System.out.println("Basic Calculator"); 
    System.out.println("A. Addition"); 
    System.out.println("B. Subtraction"); 
    System.out.println("C. Multiplication"); 
    System.out.println("D. Division"); 
    System.out.println("Enter letter of operation"); 
} 

public void enterNumbers() { 
    System.out.println("Enter first number:"); 
    int n1 = scanner .nextInt(); 
    System.out.println("Enter second number:"); 
    int n2 = scanner .nextInt(); 

} 

public static void main(String[] args) { 
    Calculator calc = new Calculator(); 
    calc.printMenu(); 
    String choice = scanner.nextLine(); 
    Calculator operation = new Calculator(); 

    switch (choice) { 
     case "a": 
     case "A": 
      System.out.println("Addition"); 
      operation.enterNumbers(); 
    } 
} 
} 
+2

您想添加一個解釋。 – GhostCat

0

看起來你忘記了scan的聲明。

Scanner scan = new Scanner(System.in); 

正下方public class Calculator可以做的工作

+0

聲明第二個掃描儀對象並不是很有用。應該只有一個掃描儀對象正在使用 – GhostCat

0

在你enterNumbers()函數掃描是一個未知的對象引用:

public void enterNumbers() { 
    System.out.println("Enter first number:"); 
    int n1 = scan.nextInt(); 
    System.out.println("Enter second number:"); 
    int n2 = scan.nextInt(); 

} 

建立在上述功能掃描對象或把它作爲一個論據。

0

正如其他人所指出的那樣:代碼中的問題是您的變量名稱爲scan未在源代碼中定義。

因此,直接的答案是讓掃描儀成爲您的課程的一個領域,並且每當您需要請求用戶輸入時(您必須避免在系統上使用多個掃描儀)。

但是真正的答案是:當你的班級有編譯錯誤時修復他們。運行不完全編譯的代碼會導致嚴重的問題。有時,像eclipse這樣的IDE允許運行不完整的代碼是有幫助的,但是當你是新手時避免這樣做。

+0

我可以給您發送信息或要求幫助。謝謝 –

+0

請理解,這不是編程學校,你可以得到免費的導師服務。我個人的建議:退出Android幾天,專注於Java基礎知識。除此之外,我今天會非常忙碌,很少有機會有時間聊天。 – GhostCat

0
public class Calculator { 
static Scanner scanner = new Scanner(System.in); 

public void printMenu() { 
    System.out.println("Basic Calculator"); 
    System.out.println("A. Addition"); 
    System.out.println("B. Subtraction"); 
    System.out.println("C. Multiplication"); 
    System.out.println("D. Division"); 
    System.out.println("Enter letter of operation"); 
} 

public void enterNumbers() { 
    System.out.println("Enter first number:"); 
    int n1 = scanner.nextInt(); 
    System.out.println("Enter second number:"); 
    int n2 = scanner.nextInt(); 

} 

public static void main(String[] args) { 

    Calculator calc = new Calculator(); 
    calc.printMenu(); 
    char choice = scanner.next().charAt(0);//switch cant work with string //,declare choice as character 
    Calculator operation = new Calculator(); 

    switch (choice) {//switch cant work with string 
    case 'a': 
    case 'A': 
     System.out.println("Addition"); 
     operation.enterNumbers(); 

    } 

} 

}

+0

切換不能使用字符串,它只能與枚舉或整數一起使用 – Dualcoder

+0

從java 7切換開始也可以使用字符串。 – GhostCat