Java 基本计算器

Java 基本计算器,java,calculator,Java,Calculator,需要帮助了解如何正确使用此功能。它只能作为“New”而不是“Void()”运行,当我到达Scan.line时,它会崩溃。我还必须学习如何绘制线性函数,如y=mx+b等。这是我第一次做这么大的项目,我渴望真正发展我的分析思维能力,以便作为一名程序员取得进步。请提供一些帮助,我们将不胜感激 import java.util.Scanner; public static class Calculator { int Number1; int Number2; String Operation; in

需要帮助了解如何正确使用此功能。它只能作为“New”而不是“Void()”运行,当我到达Scan.line时,它会崩溃。我还必须学习如何绘制线性函数,如y=mx+b等。这是我第一次做这么大的项目,我渴望真正发展我的分析思维能力,以便作为一名程序员取得进步。请提供一些帮助,我们将不胜感激

import java.util.Scanner;
public static class Calculator
{ 
int Number1;
int Number2;
String Operation;
int Final;

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

   System.out.println ("Enter your first number: ");
   Number1 = scan.nextInt();
   System.out.println ("Number 1: " + Number1 + " Number 2: " + Number2);
   System.out.println ("Ener your second number: ");
   Number2 = scan.nextInt();
   System.out.println ("Number1: " + Number1 + " Number 2: " + Number2);
   System.out.println ("Enter numericle operation you wish to preform: ");
   Operation = scan.nextLine();

   if ( Operation == "+" )
   {
    Final = (Number1 + Number2);
    System.out.print("Ans: " + Final);
   }
   if ( Operation == "-" )
   {
    Final = (Number1 - Number2);
    System.out.print("Ans: " + Final);
   }
   if ( Operation == "*" )
   {
    Final = (Number1 * Number2);
    System.out.print("Ans: " + Final);
   }
   if ( Operation == "/" )
   {
    Final = (Number1 / Number2);
    System.out.print("Ans: " + Final);
   }
}
}

我们所做的所有评论都有一些相关内容可添加到您的代码中

你认为这会发生什么

   Number1 = scan.nextInt();
   System.out.println ("Number 1: " + Number1 + " Number 2: " + Number2);
您尚未设置Number2的值,因此它应该会给您一个
NullPointerException。

稍后,当字符串查看对象时,不要将字符串与“==”进行比较。它们比较的是引用,而不是值,比较的值仅适用于基本类型

if ( Operation == "*" )
应该是

if ( Operation.equals("*")
最后但并非最不重要的一点是,常见的java约定是在每个if-else、循环、方法、类等中的块后面放大括号,而不是在下一行:

public static class Calculator
{ 
应该是

public static class Calculator {

但这只是java的惯例问题。

你会遇到什么错误?你可以从阅读开始,并将其应用到你的问题中。数字2有问题吗?因为当你开始打印时,你会打印出没有设置的数字2是的,所以不要将字符串与“==”进行比较,它只会检查参考值,而不是字符串值。我被在这里可以获得的自我获得的知识量吓坏了。非常感谢你的提示。我得到的错误是“无法从静态上下文引用非静态变量Number1”。静态变量是类变量而不是实例变量,您不需要创建类的对象来访问其静态成员或方法。因此,像main这样的静态方法无法访问需要实例存在的变量。进一步阅读静态单词。