目录
今日新学几个知识点:
1.绝对值使用
Math.abs(a1) 其中a1为需要进行绝对值的变量
2.键盘输入字符串
Scanner sc = new Scanner(System.in);
System.out.println("是否继续输入交易金额,yes-是,no-否");
String str = sc.next();
if (str.equals("no")) {
value = false;
}
import java.util.Scanner;
public class Pay {
public static void main(String[] args) {
// 初试钱包金额
double initial = 0.00;
// 提示
System.out.println("欢迎使用钱包,您目前的金额为:0.00");
// 键盘输入数字或字符串
Scanner sc = new Scanner(System.in);
// 定义布尔值
boolean value = true;
// while循环
while (value) {
// 提示
System.out.println("请输入您的收入/支出:");
// 定义输入值的类型并把输入值赋给a1
double a1 = sc.nextDouble();
// if判断输入值的正负
if (a1 < 0) {
// 判断余额与输入值绝对值的大小
if (initial < Math.abs(a1)) {
System.out.println("余额不足,无法支出!");
System.out.println("余额为:" + initial);
} else {
initial += a1;
System.out.println("您支出了" + Math.abs(a1) + "元");
System.out.println("余额为" + initial + "元");
}
} else {
initial += a1;
System.out.println("您收入了" + a1 + "元");
System.out.println("余额为" + initial + "元");
}
// 询问是否继续
System.out.println("是否继续输入交易金额,yes-是,no-否");
String str = sc.next();
if (str.equals("no")) {
value = false;
}
// System.out.println("是否继续输入交易金额,0-是,1-否");
// int choose = sc.nextInt();
// if (choose == 1) {
// value = false;
// }
}
System.out.println("交易结束,欢迎下次使用!");
}
}
以上代码仍存在double计算精度问题,需用bigdecimal,等学会了再更新
下面写一个int的,另一种记账方式
import java.util.Scanner;
public class Pay2 {
public static void main(String[] args) {
System.out.println("欢迎使用记账钱包");
Scanner scanner = new Scanner(System.in);
int initial = 0;
int a1;
int b1;
boolean value = true;
while (value) {
System.out.println("请选择:1-收入,2-支出");
int choose1 = scanner.nextInt();
if (choose1 == 1) {
System.out.println("请输入收入金额:");
a1 = scanner.nextInt();
initial += a1;
System.out.println("您的余额为:" + initial);
} else {
System.out.println("请输入支出金额:");
b1 = scanner.nextInt();
if (initial < b1) {
System.out.println("余额不足,当前余额为:" + initial);
} else {
initial -= b1;
System.out.println("您的余额为:" + initial);
}
} System.out.println("是否继续记账:1-是,2-否");
int choose2 = scanner.nextInt();
if (choose2 == 2) {
value = false;
}
} System.out.println("记账结束");
}
}
3.运算符
+ 加法
- 减法
* 乘法
/ 除法
++ 自增
-- 自减
注意:a++和++a的区别,a++是先执行语句然后加1,++a是先加1然后执行语句
import java.util.Scanner;
public class LianXi {
// ++a与a++的区别
public static void main(String[] args) {
int a1 = 5;
boolean b1 = (++a1 > 4) && (a1++ > 5);
System.out.println("a的值为:" + a1);
System.out.println("b为:" + b1);
int a2 = 5;
boolean b2 = (a2++ > 5) && (++a2 > 4);
System.out.println("a2的值为:" + a2);
System.out.println("b2为:" + b2);
}
}
a的值为:7
b为:true
a2的值为:6
b2为:false
4.三元运算符
举一个比大小的例子
import java.util.Scanner;
public class LianXi {
//判断两个数的大小并各自输出。
public static void main(String[] args) {
Scanner a = new Scanner(System.in);
boolean value = true;
while (value) {
System.out.println("请输入两个数:");
int b = a.nextInt();
int c = a.nextInt();
int max = b > c ? b : c;
int min = b < c ? b : c;
System.out.println("最大值为:" + max);
System.out.println("最小值为:" + min);
System.out.println("继续-y,结束-n");
String str = a.next();
if (str.equals("n")) {
value = false;
}
}
System.out.println("比较结束");
}
}