1、功能要求
写一个计算器,要求实现加减乘除的功能,并且能够循环接受新的数据,通过用户交互实现。
2 、解题思路
- 写四个功能函数,加减乘除。
- 交互实现,循环接受输入while()和Scanner类。
- 输出结果
3、代码实现
package com.Macong.method;
import java.util.Scanner;
public class Calculator {
//写一个计算器,要求实现加减乘除的功能,并且能够循环接受新的数据,通过用户交互实现。
/*
思路分析:
1、加减乘除,四个功能对应四个功能函数
2、要一个循环接收新数据,并进行功能选择
3、Scanner类来交互
4、输出结果
*/
public static double Add(double a, double b) {
return a + b;
}
public static double Subtract(double a, double b) {
return a - b;
}
public static double Multiply(double a, double b) {
return a * b;
}
public static double Divide(double a, double b) {
return a / b;
}
public static void main(String[] args) {
Scanner input_1 = new Scanner(System.in);
int a = 0;
int b = 0;
String c = null;
String d = null;
//char d = '0';
boolean y = true;//是否继续的标识
while (y) {
System.out.println("输入数字:");
a = input_1.nextInt();
System.out.println("输入运算符:");
c = input_1.next();
System.out.println("输入数字:");
b = input_1.nextInt();
switch (c) {
case "+": {
System.out.println(Add(a, b));
break;
}
case "-": {
System.out.println(Subtract(a, b));
break;
}
case "*": {
System.out.println(Multiply(a, b));
break;
}
case "/": {
System.out.println(Divide(a, b));
break;
}
}
System.out.println("是否继续(yy/nn):");
//d = input_1.next().charAt(0);
d = input_1.next();
System.out.println("d的值" + d);
//不继续的话,将y=false;
//这里千万不能用“==”
if (d.equals("nn")) {
System.out.println("不继续");
y = false;
} else {
System.out.println("继续");
}
}
input_1.close();
}
}
/*
String 不是基本类型,是引用类型,==比较基本类型的值,比较引用类型的地址。
equal自对引用类型,重写前比较地址,String重写后,比较值。
string对象在常量池中,不在堆里。
*/
string d = null;
d = input_1.next();
//不继续的话,将y=false;
if (d != "y") {
y = false;
}
- 这里d接收额数据nn放在常量区,栈用d 它的存放在常量区的地址
- String d =“ nn” ,if(d==“nn”),这里的d是地址,"nn"是地址还是字符串??
if (d=="nn") {
System.out.println("不继续");
y = false;
} else {
System.out.println("继续");
}
定义两个String对象:
String e = "nn";
String d = null;
System.out.println("是否继续(yy/nn):");
//d = input_1.next().charAt(0);
d = input_1.next();
System.out.println("d的值" + d);
//不继续的话,将y=false;
//这里千万不能用“==”
if (d==e) {
System.out.println("不继续");
y = false;
} else {
System.out.println("继续");
}