- 怎么做计算器?
- 需要用什么循环语句
package com.exercise;
import java.util.Scanner;
public class Demo03 {
public static void main(String[] args) {
//1.带输入数据的计算器
System.out.println("欢迎使用Java加法计算器");
System.out.println("请输入数1:");
//2.读取第一个数 new Scanner(System.in);
Scanner scanner = new Scanner(System.in);
double sum1 = scanner.nextDouble();
System.out.println("请输入数2");
//3.读取数2
double sum2 = scanner.nextDouble();
//4.计算结果
double sum = sum1+sum2;
System.out.println("计算结果是"+sum);
scanner.close();
}
}
欢迎使用Java计算器: 请输入数1: 12 请输入数2 24 计算结果是36.0 Process finished with exit code 0
输出的结果没有问题
接下来尝试进行加、减、乘、除运算
package com.exercise;
import java.util.Scanner;
public class Exercise {
public static void main(String[] args) {
System.out.println("欢迎使用java计算器");
Scanner scanner = new Scanner(System.in);
double sum1 = scanner.nextDouble();
System.out.println("请输入第一个数字:"+sum1);
System.out.println("请输入(+、-、*、/)其中任意一个标识符:");
String s = scanner.nextLine();
double sum2 = scanner.nextDouble();
System.out.println("请输入第二个数字"+sum2);
double sum = sum1 + sum2;
if (double sum = sum1 + sum2;) //到这里报错了 不让这样写
}
}
调皮一下哈
package com.exercise;
import java.util.Scanner;
public class Exercise {
public static void main(String[] args) {
System.out.println("欢迎使用java计算器");
//不排除有小数点的可能,所有这里使用double类型
Scanner scanner = new Scanner(System.in);
double sum1 = scanner.nextDouble();
System.out.println("请输入第一个数字:"+sum1);
System.out.println("请输入(+、-、*、/)其中任意一个标识符:");
String s = scanner.nextLine();
double sum2 = scanner.nextDouble();
System.out.println("请输入第二个数字"+sum2);
//输出结果
double sum = 0;
if (s=="+"){
sum = sum1 + sum2;
}else if (s=="-"){
sum = sum1 - sum2;
}else if (s=="*"){
sum = sum1 * sum2;
}else if (s=="/"){
sum = sum1 / sum2;
}else {
System.out.println("输入格式不正确!");
}
}
}
发现一个问题 没有提示用户输入
package com.exercise;
import java.util.Scanner;
public class Exercise {
public static void main(String[] args) {
System.out.println("欢迎使用java计算器");
//不排除有小数点的可能,所有这里使用double类型
System.out.println("请输入第一个数字:");
Scanner scanner = new Scanner(System.in);
double sum1 = scanner.nextDouble();
System.out.println("请输入(+、-、*、/)其中任意一个标识符:");
String s = scanner.nextLine();
System.out.println("请输入第二个数字:");
double sum2 = scanner.nextDouble();
//输出结果
double sum = 0;
if (s=="+"){
sum = sum1 + sum2;
}else if (s=="-"){
sum = sum1 - sum2;
}else if (s=="*"){
sum = sum1 * sum2;
}else if (s=="/"){
sum = sum1 / sum2;
}else {
System.out.println("输入格式不正确!");
}
}
}
更改后发现 直接跳过了输入标识符的那步 这里主要是next和nextLine的区别
继续调整
欢迎使用java计算器 请输入第一个数字: 16 请输入(+、-、*、/)其中任意一个标识符: 请输入第二个数字: 15 输入格式不正确! Process finished with exit code 0
package com.exercise;
import java.util.Scanner;
public class Exercise {
public static void main(String[] args) {
System.out.println("欢迎使用java计算器");
//不排除有小数点的可能,所有这里使用double类型
System.out.println("请输入第一个数字:");
Scanner scanner = new Scanner(System.in);
double sum1 = scanner.nextDouble();
System.out.println("请输入(+、-、*、/)其中任意一个标识符:");
String s = scanner.next();
System.out.println("请输入第二个数字:");
double sum2 = scanner.nextDouble();
//输出结果
double sum = 0;
if (s=="+"){
sum = sum1 + sum2;
System.out.println("输出结果为"+sum);
}else if (s=="-"){
sum = sum1 - sum2;
System.out.println("输出结果为"+sum);
}else if (s=="*"){
sum = sum1 * sum2;
System.out.println("输出结果为"+sum);
}else if (s=="/"){
sum = sum1 / sum2;
System.out.println("输出结果为"+sum);
}else {
System.out.println("输入格式不正确!");
}
}
}
可以正常输出,但是发现直接输出了:输出格式不正确!这句话
再修改一下
欢迎使用java计算器 请输入第一个数字: 12 请输入(+、-、*、/)其中任意一个标识符: + 请输入第二个数字: 24 输入格式不正确! Process finished with exit code 0
发现原因
if (s=="+"){
sum = sum1 + sum2;
System.out.println("输出结果为"+sum);
替换为(其他同理) 最好避免上面这种写法
if (s.equals("+")){
sum = sum1 + sum2;
System.out.println("输出结果为"+sum);
修改版
package com.exercise;
import java.util.Scanner;
public class Exercise {
public static void main(String[] args) {
System.out.println("欢迎使用java计算器");
//不排除有小数点的可能,所有这里使用double类型
System.out.println("请输入第一个数字:");
Scanner scanner = new Scanner(System.in);
double sum1 = scanner.nextDouble();
System.out.println("请输入(+、-、*、/)其中任意一个标识符:");
String s = scanner.next();
System.out.println("请输入第二个数字:");
double sum2 = scanner.nextDouble();
//输出结果
double sum = 0;
if (s.equals("+")){
sum = sum1 + sum2;
System.out.println("输出结果为"+sum);
}else if (s.equals("-")){
sum = sum1 - sum2;
System.out.println("输出结果为"+sum);
}else if (s.equals("*")){
sum = sum1 * sum2;
System.out.println("输出结果为"+sum);
}else if (s.equals("/")){
sum = sum1 / sum2;
System.out.println("输出结果为"+sum);
}else {
System.out.println("输入格式不正确!");
}
}
}



