Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基本Java计算器使用函数(初学者)_Java_Calculator - Fatal编程技术网

基本Java计算器使用函数(初学者)

基本Java计算器使用函数(初学者),java,calculator,Java,Calculator,嘿,伙计们,我是java的初学者,还在学习。我有一个关于函数的问题。所以我只是为了好玩而创建了一个基本的计算器 package calculator; import java.util.Scanner; public class Calculator { public void printMenu() { System.out.println("Basic Calculator"); System.out.println("A. Addition"); System

嘿,伙计们,我是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();
    }
  }
}
但当我测试它时,当我继续进行案例a时,它显示了以下内容:

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)

调用函数EnterNumber时是否出错?非常感谢,我希望了解更多信息。

扫描仪必须是一个字段,扫描不存在

我在类行下定义scanner 并将
enterNumbers()
方法中的
scann
更改为
scanner

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();
    }
}
}

看起来您忘记了
scan
的声明

 Scanner scan = new Scanner(System.in);
在enterNumbers()函数中,
公共类计算器的右下方
可以执行任务

,扫描是未知对象引用:

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

}

在上述函数中创建scanner对象或将其作为参数传递。

正如其他人所指出的那样:代码中的问题在于,您是一个名为scan的变量,而该变量未在源代码中定义

因此,直接的答案是将scanner作为类的一个字段,并在需要用户输入时使用它(顺便说一句,您必须避免在system.in.上使用多个scanner)

但真正的答案是:当你的类有编译错误时,然后修复它们。运行未完全编译的代码会导致此类问题。有时候,像eclipse这样的IDE允许运行不完整的代码是有帮助的,但当您是新手时,请避免这样做

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();

    }

}

}

扫描仪必须是一个字段,扫描不存在您要添加解释。声明第二个扫描仪对象实际上没有帮助。使用中应该只有一个扫描对象switch不能与字符串一起使用,它只能与enum或integerStarting一起使用java 7 switch也可以使用字符串。我可以给您留言或寻求帮助吗。谢谢,请理解,这不是你可以得到免费家教服务的编程学校。我个人的建议是:在几天内远离android,专注于java基础知识。除此之外,我今天会很忙,几乎没有机会有时间聊天。