简单java控制台计算器
如果不直接给我答案,有人能帮我写一个简单的计算器吗? 除了最后我让用户选择加、减、乘或除之外,一切似乎都很好。它不允许我在控制台中输入我的选择。 我认为这与我创建的字符串数组和if语句有关。不确定。任何提示都将不胜感激简单java控制台计算器,java,Java,如果不直接给我答案,有人能帮我写一个简单的计算器吗? 除了最后我让用户选择加、减、乘或除之外,一切似乎都很好。它不允许我在控制台中输入我的选择。 我认为这与我创建的字符串数组和if语句有关。不确定。任何提示都将不胜感激 import java.util.Scanner; public class simpleCalculator { public static void main(String[] args) { Scanner input = new Scanne
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()
useinput.next()
还要确保在单独的函数中执行加法,因为无论您输入什么数字,您现在只打印值0。哦,太酷了。我想知道为什么要返回0。我不知道在单独的函数中执行加法是什么意思。移动了它,瞧!谢谢。我希望是这样的o完成测试我创建的字符串数组的用户输入内容,显然还没有使用。再次感谢各位提供的提示。我将进一步讨论这件事。无论如何,我的观点都成立。你不应该使用==来比较字符串值。你应该始终使用.equals()函数在比较字符串值时使用。即使userChoice的值等于“add”,您现在的语句也将为false。因此,为了清楚起见,如果我有一个字符串数组,并且我想将这些值与用户输入的值进行比较,那么我将使用==?如果您想比较a和b的值,请使用方法a.equals(b)在这种情况下,您不需要使用==来比较这两个字符串