JAVA错误。如果可能,需要以注释或代码的形式提出建议,请,

JAVA错误。如果可能,需要以注释或代码的形式提出建议,请,,java,Java,因为我是新手。我已经尝试了一些代码。请提出一些问题。。我收到这个错误。请帮我解决这个问题 import java.util.Scanner; import java.io.*; package calculator; public class calc { public static void main(String[] args) { } private int valueA; private int valueB;

因为我是新手。我已经尝试了一些代码。请提出一些问题。。我收到这个错误。请帮我解决这个问题

import java.util.Scanner;
import java.io.*;
package calculator;

public class calc {
    public static void main(String[] args) {
    }

            private int valueA;
            private int valueB;
            private String operator;
            private char operatorA;

            public int getvalueA() {
            return valueA;
            }

            public int getvalueB() {
            return valueB;
            }

            {
            Scanner keyboard = new Scanner(System.in);
            System.out.println("Enter problem.");

            {

            valueA = keyboard.nextInt();
            valueB = keyboard.nextInt();
            operator = keyboard.next();
            operatorA = operator.charAt(0);

            int add = valueA + valueB;
            int minus = valueA - valueB;
            int multiply = valueA * valueB;
            int divide = valueA / valueB;
            String clearScreen = null;


            switch (operatorA) {
            case '+':
            System.out.println(add);
            break;

            case '-':
            System.out.println(minus);
            break;

            case '*':
            System.out.println(multiply);
            break;

            case '/':
            System.out.println(divide);

            case 'C':
            System.out.println(clearScreen);
            break;

            default:
            System.out.println("unknown operator '" + operator + "'. Please try again.");
            break;
            }

            }
        }
请提供纠正点


:语法错误,插入“}”以完成MethodBody

编译器抱怨的主要问题是大括号的位置不正确(末尾缺少一个大括号)。但是,您可能也没有在正确的位置编写代码。您可能希望将它的大部分放在
main()
中,但是相反,您将它放在构造函数中,因此,如果不至少实例化
Calc
类型的对象,它将无法运行。实际上,您希望将代码重构为如下内容:

import java.util.Scanner;

public class calc {
    private static int valueA;
    private static int valueB;
    private static String operator;
    private static char operatorA;

    public int getValueA() {
        return valueA;
    }

    public int getValueB() {
        return valueB;
    }

    public static void main(String[] args) {
        Scanner keyboard = new Scanner(System.in);
        System.out.println("Enter problem.");

        valueA = keyboard.nextInt();
        valueB = keyboard.nextInt();
        operator = keyboard.next();
        operatorA = operator.charAt(0);

        int add = valueA + valueB;
        int minus = valueA - valueB;
        int multiply = valueA * valueB;
        int divide = valueA / valueB;
        String clearScreen = null;

        switch (operatorA) {
        case '+':
            System.out.println(add);
            break;

        case '-':
            System.out.println(minus);
            break;

        case '*':
            System.out.println(multiply);
            break;

        case '/':
            System.out.println(divide);

        case 'C':
            System.out.println(clearScreen);
            break;

        default:
            System.out.println("unknown operator '" + operator
                    + "'. Please try again.");
            break;
        }

    }

}
也就是说,如果您想从main访问类中的变量,它们必须声明为static(因为main是/必须是static),就像我在这里为您所做的那样


或者,您可以实例化类型为
Calc
的对象,并通过您创建的getter访问其成员,然后变量不必是静态的(可能是您最初想要的)。这通常比较干净,我将把它作为练习留给你。注意Java中的标准命名约定:camelCase类名以大写字母开头

编译器抱怨的主要问题是大括号的位置不正确(末尾缺少一个大括号)。但是,您可能也没有在正确的位置编写代码。您可能希望将它的大部分放在
main()
中,但是相反,您将它放在构造函数中,因此,如果不至少实例化
Calc
类型的对象,它将无法运行。实际上,您希望将代码重构为如下内容:

import java.util.Scanner;

public class calc {
    private static int valueA;
    private static int valueB;
    private static String operator;
    private static char operatorA;

    public int getValueA() {
        return valueA;
    }

    public int getValueB() {
        return valueB;
    }

    public static void main(String[] args) {
        Scanner keyboard = new Scanner(System.in);
        System.out.println("Enter problem.");

        valueA = keyboard.nextInt();
        valueB = keyboard.nextInt();
        operator = keyboard.next();
        operatorA = operator.charAt(0);

        int add = valueA + valueB;
        int minus = valueA - valueB;
        int multiply = valueA * valueB;
        int divide = valueA / valueB;
        String clearScreen = null;

        switch (operatorA) {
        case '+':
            System.out.println(add);
            break;

        case '-':
            System.out.println(minus);
            break;

        case '*':
            System.out.println(multiply);
            break;

        case '/':
            System.out.println(divide);

        case 'C':
            System.out.println(clearScreen);
            break;

        default:
            System.out.println("unknown operator '" + operator
                    + "'. Please try again.");
            break;
        }

    }

}
也就是说,如果您想从main访问类中的变量,它们必须声明为static(因为main是/必须是static),就像我在这里为您所做的那样


或者,您可以实例化类型为
Calc
的对象,并通过您创建的getter访问其成员,然后变量不必是静态的(可能是您最初想要的)。这通常比较干净,我将把它作为练习留给你。注意Java中的标准命名约定:camelCase类名称以大写字母开头

确保所有大括号与方法匹配。运行它的代码还需要是一个方法

    public static void parse{
         Scanner keyboard = new Scanner(System.in);
         System.out.println("Enter problem.");
             valueA = keyboard.nextInt();
             valueB = keyboard.nextInt();

然后从主方法调用该方法。

确保所有大括号与方法匹配。运行它的代码还需要是一个方法

    public static void parse{
         Scanner keyboard = new Scanner(System.in);
         System.out.println("Enter problem.");
             valueA = keyboard.nextInt();
             valueB = keyboard.nextInt();

然后从主方法调用该方法。

您有一些奇怪的花括号位置

这里是应该可以的:

import java.util.Scanner;
import java.io.*;
package calculator;

public class calc {

    private int valueA;
    private int valueB;
    private String operator;

    private char operatorA;

    public int getvalueA() {
       return valueA;
    }

    public int getvalueB() {
       return valueB;
    }

    public static void main(String[] args) {

            Scanner keyboard = new Scanner(System.in);
            System.out.println("Enter problem.");

            valueA = keyboard.nextInt();
            valueB = keyboard.nextInt();
            operator = keyboard.next();
            operatorA = operator.charAt(0);

            int add = valueA + valueB;
            int minus = valueA - valueB;
            int multiply = valueA * valueB;
            int divide = valueA / valueB;
            String clearScreen = null;


            switch (operatorA) {
               case '+':
               System.out.println(add);
               break;

               case '-':
               System.out.println(minus);
               break;

               case '*':
               System.out.println(multiply);
               break;

               case '/':
               System.out.println(divide);

               case 'C':
               System.out.println(clearScreen);
               break;

               default:
               System.out.println("unknown operator '" + operator + "'. Please try again.");
               break;    
            }
     }
  }

你有一些奇怪的花括号

这里是应该可以的:

import java.util.Scanner;
import java.io.*;
package calculator;

public class calc {

    private int valueA;
    private int valueB;
    private String operator;

    private char operatorA;

    public int getvalueA() {
       return valueA;
    }

    public int getvalueB() {
       return valueB;
    }

    public static void main(String[] args) {

            Scanner keyboard = new Scanner(System.in);
            System.out.println("Enter problem.");

            valueA = keyboard.nextInt();
            valueB = keyboard.nextInt();
            operator = keyboard.next();
            operatorA = operator.charAt(0);

            int add = valueA + valueB;
            int minus = valueA - valueB;
            int multiply = valueA * valueB;
            int divide = valueA / valueB;
            String clearScreen = null;


            switch (operatorA) {
               case '+':
               System.out.println(add);
               break;

               case '-':
               System.out.println(minus);
               break;

               case '*':
               System.out.println(multiply);
               break;

               case '/':
               System.out.println(divide);

               case 'C':
               System.out.println(clearScreen);
               break;

               default:
               System.out.println("unknown operator '" + operator + "'. Please try again.");
               break;    
            }
     }
  }

publicstaticvoidmain(String[]args){}
是你的方法开始的方式…@kon我告诉过你,我是新手。无法将你的知识与像我这样的新手进行比较…不必自责:)。我只是指出我发现的问题。我建议将来使用集成开发环境(IDE)。Eclipse之类的东西可以帮助您避免这个问题(或者至少在创建它时立即捕获它)。祝你好运
publicstaticvoidmain(String[]args){}
是你的方法开始的方式…@kon我告诉过你,我是新手。无法将你的知识与像我这样的新手进行比较…不必自责:)。我只是指出我发现的问题。我建议将来使用集成开发环境(IDE)。Eclipse之类的东西可以帮助您避免这个问题(或者至少在创建它时立即捕获它)。祝你好运为了正确命名事物并了解如何正确使用
static
关键字,我还将删除System.out.println(“Enter problem”)(输入问题)后面的多余大括号。很好!请注意,原始代码中的括号不是构造函数。由于它们不是静态块,因此在没有类实例的情况下,代码不会运行。回答得好。正确地命名事物,并了解如何正确使用
static
关键字。我还会在System.out.println(“输入问题”)之后删除多余的大括号。很好!请注意,原始代码中的括号不是构造函数。由于它们不是静态块,因此在没有类实例的情况下,代码不会运行。好答案,顺便说一句