用java构建计算器(带开关)
我用一个开关来计算两个数字,但当我尝试做任何类型的运算时,我总是得到用java构建计算器(带开关),java,Java,我用一个开关来计算两个数字,但当我尝试做任何类型的运算时,我总是得到0 //imports import java.util.Scanner; public class Calculator { public static void main (String[] args) { //get first number Scanner scan = new Scanner(System.in); System.out.println("Please ent
0
//imports
import java.util.Scanner;
public class Calculator {
public static void main (String[] args) {
//get first number
Scanner scan = new Scanner(System.in);
System.out.println("Please enter the first number: > ");
int num1 = scan.nextInt();
// get second number
System.out.println("Please enter the second number: > ");
int num2 = scan.nextInt();
// what the user wants to do
System.out.println("Please enter the method you would like to use "
+ "(+ , - , * , / , ^ ) > " );
String method = scan.next();
char operation = method.charAt(0);
String output = "";
//switch for first number
switch(num1) {
case 0: output+= "zero";
break;
case 1: output+= " one";
break;
case 2: output+= " two";
break;
case 3: output+= " three";
break;
case 4: output+= " four";
break;
case 5: output+= " five";
break;
case 6: output+= " six";
break;
case 7: output+= " seven";
break;
case 8: output+= " eight";
break;
case 9: output+= " nine";
break;
case 10: output+= " ten";
break;
}
// operation the user wants to use
switch (operation){
case '+' : output += " plus";
break;
case '-' : output += " minus";
break;
case '*' : output += " times";
break;
case '/' : output += " divided by";
break;
case '^' : output += " to the power of";
break;
}
//switch for second number
switch (num2) {
case 0: output += " zero";
break;
case 1: output += " one";
break;
case 2: output += " two";
break;
case 3: output += " three";
break;
case 4: output += " four";
break;
case 5: output += " five";
break;
case 6: output += " six";
break;
case 7: output += " seven";
break;
case 8: output += " eight";
break;
case 9: output += " nine";
break;
case 10: output += " ten";
break;
// calculate the answer
}
int answer = 0 ;
switch (answer) {
case '+' : answer = (answer + (num1 + num2));
break;
case '-' : answer = (answer + (num1 - num2));
break;
case '*' : answer = (answer + (num1 * num2));
break;
case '/' : answer = (answer + (num1 / num2));
break;
case '^' : answer = (answer + (int) (Math.pow(num1,num2) ));
break;
}
System.out.println(output + " equals " + answer );
}
}
我很确定我的问题在程序的底部,实际的功能
int answer = 0 ;
switch (answer) {
从那个地区的某个地方开始,只是很难弄清楚。也许其他人可以提供我做错了什么的信息
提前谢谢你的帮助
int answer = 0 ;
switch (answer) {
没有任何意义,您正在打开0
(硬编码)并且没有相关案例
打开
操作
而不是你可能想做的
switch (operation) {
而不是
switch (answer) {
以下是正在发生的事情: 您正在将
0
分配给answer
。然后:
- 如果
是答案
,请做第一件事“+”
- 如果
是答案
,请执行其他操作'-'
- 如果
是答案
,那么做第三件事“*”
'\0'
(空字符)作为一种情况
似乎您想要打开操作
,而不是回答
您在说:
...
int answer = 0;
if(answer == '+'){
...
}
else if(answer == '-'){
...
}
else if(answer == '*'){
...
} ...
我想这应该行得通:
int answer = 0 ;
switch (operation) {
case '+' : answer = num1 + num2;
break;
case '-' : answer = num1 - num2;
break;
case '*' : answer = num1 * num2;
break;
case '/' : answer = num1 / num2;
break;
case '^' : answer = (int) Math.pow(num1,num2) ;
break;
}
你需要解释一下你的答案,只给出代码对任何人真正理解他们的错误都没有帮助。到底什么是“开关(4)”呢?
public class Calculator {
public static void main(String args []){
int x=10,y=5,add,sub,div,mul;
switch (4) {
case 1:
add=x+y;
System.out.print("add :"+add);
break;
case 2:
sub=x-y;
System.out.print("sub :"+sub);
break;
case 3:
mul=x*y;
System.out.print("mul:"+mul);
break;
case 4:
div=x/y;
System.out.print("div:"+div);
default:
System.out.print("invailid");
}
}
}