简单的java控制台计算器

时间:2015-04-17 01:59:11

标签: java

如果没有直接给我答案,有人可以帮助我使用这个我想写的简单计算器吗? 当我要求用户做出加,减,乘或除的选择时,一切似乎都能正常工作。它不允许我在控制台中输入我的选择。 我认为它与我创建的String数组和if语句有关。不确定。任何提示都将非常感激。

import java.util.Scanner;

public class simpleCalculator {

    public static void main(String[] args) {

        Scanner input = new Scanner(System.in);

        //declare my variables
        int firstNum;
        int secondNum;
        int division = 0, addition = 0, subtraction = 0, multiplication = 0;
        String userChoice = "";
        String choices[] = {"add","multiply","divide","subtract"};

        //ask for user input
        System.out.print("Please enter first number: ");
        firstNum = input.nextInt();
        System.out.print("Please enter second number: ");
        secondNum = input.nextInt();
        System.out.println("What type of operation would you like to perform on these numbers?");
        System.out.println("add " +"multiply " +"subtract " + "divide ");
        userChoice = input.nextLine();

        if (userChoice == "add"){
                    System.out.print("Answer = " + addition);
        }


        //calculator formulas
        addition = firstNum + secondNum;
        multiplication = firstNum * secondNum;
        subtraction = firstNum - secondNum;
        division = firstNum / secondNum;

    }

}

2 个答案:

答案 0 :(得分:1)

nextInt()只读取数字后面的数字而不是行的结尾。在每个nextInt()之后你需要一个nextLine()来消耗该行的其余部分。

此外,在你撞墙之前,以下声明对你不起作用:

if (userChoice == "add")

==测试参考相等。

.equals()测试值的相等性。所以你需要这样的东西:

if (userChoice.equals("add"))

我想给你那个免费赠品,因为我喜欢你的态度,你不希望任何人给你答案。你很想学习它。保持良好的工作。

答案 1 :(得分:0)

说String a == String b意味着你要比较两个字符串以查看它们是否具有引用相等性,同时说a.equals(b)将比较存储在字符串中的值。

引用相等用于比较两个对象引用是否指向同一个对象,在这种情况下,当您尝试比较两个变量的值是否相等时,您不应该使用它们。 所以一定要用

if(userChoice.equals("add"))