我试着写一个基本的计算器,但java看不到我的数字,找不到问题所在:(

我试着写一个基本的计算器,但java看不到我的数字,找不到问题所在:(,java,Java,这是我的代码,我想 欢迎来到SimpleCalc [ 0.0 ] +,-,*,/值 清楚的 退出 选择:+25.0 [ 25.0 ] +,-,*,/值 清楚的 退出 选择:/4 [ 6.25 ] +,-,*,/值 清楚的 退出 选择:清除 [ 0.0 ] +,-,*,/值 清楚的 退出 选择:q 像这样的输出。但是有什么不对劲,我找不到什么不对劲。我得到的输出是这样的 欢迎来到SimpleCalc [ 0.0 ] +,-,*,/值 清楚的 退出 选择:+25.0 [ 0.0 ] +,-,*,/值

这是我的代码,我想 欢迎来到SimpleCalc

[ 0.0 ] +,-,*,/值 清楚的

退出 选择:+25.0

[ 25.0 ] +,-,*,/值 清楚的

退出 选择:/4

[ 6.25 ] +,-,*,/值 清楚的

退出 选择:清除

[ 0.0 ] +,-,*,/值 清楚的

退出 选择:q

像这样的输出。但是有什么不对劲,我找不到什么不对劲。我得到的输出是这样的

欢迎来到SimpleCalc

[ 0.0 ] +,-,*,/值 清楚的

退出 选择:+25.0

[ 0.0 ] +,-,*,/值 清楚的

退出 选择:

谢谢你的帮助。

给你

    // constants
    final String LINE = "----------------";
    final String VALUE = " +,-,*,/ value";
    final String CLEAR = "Clear";
    final String QUIT = "Quit ";
    final int ZERO = 0;

    // variables
    double first;
    String function;
    double number;

    // program code
    System.out.println( "Start...");
    System.out.println( "Welcome to \"SimpleCalc\" ... ");
    first = 0;
    // 1.Calculations
    do 
    {
      System.out.println(LINE);
      System.out.println( "[" + first + "]" );
      System.out.println(VALUE);
      System.out.println(CLEAR);
      System.out.println(QUIT);
      System.out.println(LINE);
      System.out.println(" SELECT :");
      function = scan.next();
      if (function.equals("+") || function.equals("-") || function.equals("*") || function.equals("/"))
      {
        number = scan.nextDouble();
        if ( function.equals("+") )
        {
          first = first + number;
        }
        else if (function.equals("-") )
        {
          first = first - number;
        }
        else if (function.equals("/") )
        {
          first = first / number;
        }
        else if (function.equals("*") )
        {
          first = first * number;
        }

      }
      else if (function.equals("Clear") );
      {
        first = ZERO;
      }

    }
    while ( function != "q" );
    //2. Exit
    // todo...

    System.out.println( "End.");
}

while function!=q->但奇怪的是,你似乎知道基于if function.equalsClear哦,不要添加;就在ifcondition之后,就像你在else if function.equalsClear中做的那样;在你的帖子中,完全不清楚输入和输出。试着把它分解成一个简单的例子,来演示什么不起作用。@sam Nah,==vs equals是重复的,但我已经使用了我的接近投票,所以现在不能更改它,而且;if之后也是重复的或只是印刷问题,这是堆栈溢出的主题。我不想通过发布可能获得上升投票/接受分数的答案来阻止自动删除像这样的低质量问题。我可以帮助OP b我会发表评论,但仅此而已。
import java.util.Scanner;

public class Calculator {

    static Scanner scan = new Scanner(System.in);

    public static void main(String[] args) {
        // constants
        final String LINE = "----------------";
        final String VALUE = " +,-,*,/ value";
        final String CLEAR = "Clear";
        final String QUIT = "Quit";
        final int ZERO = 0;

        // variables
        double result;
        String function;
        double number;

        // program code
        System.out.println("Start...");
        System.out.println("Welcome to \"SimpleCalc\" ... ");
        result = 0;
        // 1.Calculations
        while (true) {
            System.out.println(LINE);
            System.out.println("[" + result + "]");
            System.out.println(VALUE);
            System.out.println(CLEAR);
            System.out.println(QUIT);
            System.out.println(LINE);
            System.out.println(" SELECT :");
            function = scan.next();
            if (function.equalsIgnoreCase("q")) {
                break;
            }
            if (function.equalsIgnoreCase("Clear")) {
                result = ZERO;
            } else {
                number = scan.nextDouble();
                switch (function) {
                    case "+":
                        result = result + number;
                        break;
                    case "-":
                        result = result - number;
                        break;
                    case "/":
                        result = result / number;
                        break;
                    case "*":
                        result = result * number;
                        break;
                }
            }
        }
        //2. Exit
        // todo...

        System.out.println("End.");
    }
}