简单java控制台计算器

简单java控制台计算器,java,Java,如果不直接给我答案,有人能帮我写一个简单的计算器吗? 除了最后我让用户选择加、减、乘或除之外,一切似乎都很好。它不允许我在控制台中输入我的选择。 我认为这与我创建的字符串数组和if语句有关。不确定。任何提示都将不胜感激 import java.util.Scanner; public class simpleCalculator { public static void main(String[] args) { Scanner input = new Scanne

如果不直接给我答案,有人能帮我写一个简单的计算器吗? 除了最后我让用户选择加、减、乘或除之外,一切似乎都很好。它不允许我在控制台中输入我的选择。 我认为这与我创建的字符串数组和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;

    }

}
nextInt()只读取数字,而不读取数字后的行尾。在每个nextLine()之后,需要一个nextLine()来使用该行的其余部分

此外,在你把头撞到墙上之前,以下陈述对你不适用:

if (userChoice == "add")
==参考等式测试

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

if (userChoice.equals("add"))

我想给你免费赠品,因为我喜欢你的态度,你不希望任何人给你答案。你想学它真是太好了。继续努力。

说字符串a==stringb意味着比较两个字符串,看看它们是否具有引用相等,而说a.equals(b)将比较存储在字符串中的值

引用相等用于比较两个对象引用是否指向同一个对象,在本例中,当您试图比较两个变量的值是否相等时,不应使用该值。所以一定要去

if(userChoice.equals("add"))

只需在
userChoice=input.nextLine()之前添加另一个
input.nextLine()
要比较字符串,请使用
userChoice.equals(“add”)
继续为不同的输入运行程序,请使用while循环-
while(input.hasNext(){//your code}
尝试使用而不是
input.nextLine()
use
input.next()
还要确保在单独的函数中执行加法,因为无论您输入什么数字,您现在只打印值0。哦,太酷了。我想知道为什么要返回0。我不知道在单独的函数中执行加法是什么意思。移动了它,瞧!谢谢。我希望是这样的o完成测试我创建的字符串数组的用户输入内容,显然还没有使用。再次感谢各位提供的提示。我将进一步讨论这件事。无论如何,我的观点都成立。你不应该使用==来比较字符串值。你应该始终使用.equals()函数在比较字符串值时使用。即使userChoice的值等于“add”,您现在的语句也将为false。因此,为了清楚起见,如果我有一个字符串数组,并且我想将这些值与用户输入的值进行比较,那么我将使用==?如果您想比较a和b的值,请使用方法a.equals(b)在这种情况下,您不需要使用==来比较这两个字符串