标题翻译
a simple calculator with switch case
问题
以下是翻译好的代码部分:
import java.util.Scanner;
import java.math.*;
public class Calculatrice {
public static void main(String args[]) {
double num1;
Scanner keyb = new Scanner(System.in);
System.out.println("Simple Calculator");
System.out.print("Current value: ");
num1 = keyb.nextDouble();
System.out.print("Enter an operator: ");
String i;
i = keyb.nextLine();
double result = 0;
switch (i) {
case "+":
result = result + num1;
break;
case "-":
result = result - num1;
break;
case "*":
result = result * num1;
break;
case "/":
result = result / num1;
break;
case "sqrt":
result = Math.sqrt(result);
break;
case "c":
result = 0;
break;
case "x":
System.exit(0);
break;
case "^":
result = Math.pow(result, num1);
break;
default:
System.out.println("Accepted values: +, -, *, /, ^, sqrt, c, x");
break;
}
keyb.close();
}
}
英文翻译
I have a problem. In class we have to do a simple calculator, and my problem is that I wanna write a number, then the operator, then again a number. Somehow my code doesn't work. I can enter the first number but then my program closes :/ Why is that? Is it because I used the data type string?
Thanks to everyone in advance!!
Here is my code:
import java.util.Scanner;
import java.math.*;
public class Calculatrice
{
public static void main(String args[])
{
double num1;
Scanner keyb = new Scanner(System.in);
System.out.println("Calculette Simple");
System.out.print("Valeur actuelle: ");
num1 = keyb.nextDouble();
System.out.print("Entrez un operateur: ");
String i;
i = keyb.nextLine();
double result = 0;
switch (i)
{
case "+":
result = result + num1;
break;
case "-":
result = result - num1;
break;
case "*":
result = result * num1;
break;
case "/":
result = result / num1;
break;
case "sqrt":
result = Math.sqrt(result);
break;
case "c":
result = 0;
break;
case "x":
System.exit(0);
break;
case "^":
result = Math.pow(result,num1);
break;
default:
System.out.println("Valeurs acceptees: +, -, *, /, ^, sqrt, c, x");
break;
}
keyb.close();
}
}
答案1
得分: 0
你需要一个循环:需要从命令行读取数据,直到满足条件为止,以便读取多个字符串(数字、操作符或其他任何内容)。然后尝试类似这样的代码:
// 你的扫描器初始化
i = keyb.nextLine();
double result = 0;
while (!i.equals("end")) { // 我使用这个作为退出条件,但你可以使用任何你想要的条件
switch (i) {
case "+":
result = result + num1;
break;
case "-":
result = result - num1;
break;
case "*":
result = result * num1;
break;
case "/":
result = result / num1;
break;
case "sqrt":
result = Math.sqrt(result);
break;
case "c":
result = 0;
break;
case "x":
System.exit(0);
break;
case "^":
result = Math.pow(result, num1);
default:
System.out.println("Accepted values: +, -, *, /, ^, sqrt, c, x");
}
}
// 关闭扫描器
请注意,我只翻译了你提供的代码部分,其他内容均未包含在内。
英文翻译
You need a loop: you need to read data from command line until a condition is verified, in order to read more then one string (number, operator or whatever you want). Then try something like this :
// your initialization of scanner
i = keyb.nextLine();
double result = 0;
while (!i.equals("end")) { // I use this as exit condition, but you can use whatever you want
switch (i) {
case "+":
result = result + num1;
break;
case "-":
result = result - num1;
break;
case "*":
result = result * num1;
break;
case "/":
result = result / num1;
break;
case "sqrt":
result = Math.sqrt(result);
break;
case "c":
result = 0;
break;
case "x":
System.exit(0);
break;
case "^":
result = Math.pow(result, num1);
default:
System.out.println("Valeurs acceptees: +, -, *, /, ^, sqrt, c, x");
}
}
// close scanner
答案2
得分: 0
你需要一个带有退出条件的循环(我相信在输入中是 'x')
类似于
while (!"x".equals(i)) {
switch (i)
...
}
英文翻译
you need some loop with exit condition (I belive it's 'x' in input)
something like
while (!"x".equals(i)) {
switch (i)
...
}
答案3
得分: 0
该程序接收用户输入的两个数字的值,然后要求用户输入操作符(+、-、* 和 /),基于输入的操作符,程序使用 switch case 在输入的数字上执行所选的操作。
import java.util.Scanner;
public class JavaExample {
public static void main(String[] args) {
double num1, num2;
Scanner scanner = new Scanner(System.in);
System.out.print("请输入第一个数字:");
/* 我们使用 double 数据类型,以便用户可以输入整数和浮点数值 */
num1 = scanner.nextDouble();
System.out.print("请输入第二个数字:");
num2 = scanner.nextDouble();
System.out.print("请输入运算符(+、-、*、/):");
char operator = scanner.next().charAt(0);
scanner.close();
double output;
switch(operator)
{
case '+':
output = num1 + num2;
break;
case '-':
output = num1 - num2;
break;
case '*':
output = num1 * num2;
break;
case '/':
output = num1 / num2;
break;
/* 如果用户输入的操作符不是 +、-、* 和 /,则向用户显示错误消息 */
default:
System.out.printf("您输入了错误的操作符");
return;
}
System.out.println(num1 + " " + operator + " " + num2 + ": " + output);
}
}
英文翻译
The program takes the value of both the numbers (entered by user) and then user is asked to enter the operation (+, -, * and /), based on the input program performs the selected operation on the entered numbers using switch case.
import java.util.Scanner;
public class JavaExample {
public static void main(String[] args) {
double num1, num2;
Scanner scanner = new Scanner(System.in);
System.out.print("Enter first number:");
/* We are using data type double so that user
* can enter integer as well as floating point
* value
*/
num1 = scanner.nextDouble();
System.out.print("Enter second number:");
num2 = scanner.nextDouble();
System.out.print("Enter an operator (+, -, *, /): ");
char operator = scanner.next().charAt(0);
scanner.close();
double output;
switch(operator)
{
case '+':
output = num1 + num2;
break;
case '-':
output = num1 - num2;
break;
case '*':
output = num1 * num2;
break;
case '/':
output = num1 / num2;
break;
/* If user enters any other operator or char apart from
* +, -, * and /, then display an error message to user
*
*/
default:
System.out.printf("You have entered wrong operator");
return;
}
System.out.println(num1+" "+operator+" "+num2+": "+output);
}
}
专注分享java语言的经验与见解,让所有开发者获益!
评论