JAVA Day3 主要实现了一个存取款机的功能
<font color=blue size=4>刚刚交了作业,有点小问题就是变量首字母我大写了,大写表示常量,下次注意</font>
-
判断成绩等级
`System.out.println("请输入成绩Grade:"); Scanner scanner = new Scanner(System.in); double grade = scanner.nextDouble(); if(grade >= 90){ System.out.println("优秀"); } else if (grade >= 80) { System.out.println("良好"); } else if (grade >= 60) { System.out.println("合格"); }else { System.out.println("不合格"); }`
-
选择结构
-
多分支
-
if(){ } else if (){ }else { }
-
switch(){ case: break; case: break; case: break; default: break; }
-
-
<font size=4 color=#998>eg: </font>
1.
`System.out.println("请输入今天星期几:");
Scanner scan = new Scanner(System.in);
int day = scan.nextInt();
switch(day){
case 1:
System.out.println("今天周一,吃面条");
break;
case 2:
System.out.println("今天周二,吃螺蛳粉");
break;
case 3:
System.out.println("今天周三,吃火锅");
break;
default:
System.out.println("今天不吃饭");
break;
}`
2.
`switch (day) {
case 1, 2, 3:
System.out.println("春天");
break;
case 4, 5, 6:
System.out.println("夏天");
break;
case 7, 8, 9:
System.out.println("秋天");
break;
default:
System.out.println("冬天");
break;
}`
3. `case 1:
case 2:
case 3:
System.out.println("春天");
break;`
<font color=#226>例题:运输公司对用户计算运费,路程越远每公里运费越低。
每公里每吨货物基本运费是 p(自定义基础运费),货物重量为 w 吨,距离为 s 公里,折扣为 d,总运费 f = pws(1-d)
s < 250km 折扣为0
250<= s < 500 2%
500<= s < 1000 5%
1000<= s < 2000 8%
2000<= s < 3000 10%
3000<= s 15%
</font>
`System.out.println("请输入路程,货物重量:");
final int p = 8;
double w, s, d, f;
Scanner scanner = new Scanner(System.in);
s = scanner.nextDouble();
w = scanner.nextDouble();
d = 0;
if(s < 250){
d = 0;
} else if (250<= s && s <500) {
d = 0.02;
} else if (500 <= s && s < 1000) {
d = 0.05;
}else if (1000 <= s && s < 2000) {
d = 0.08;
}else if (2000 <= s && s < 3000) {
d = 0.1;
}else if(s >= 3000){
d = 0.15;
}
f = p * w * s * (1 -d);
System.out.println("运费为:" + f);```
<font color=red>
String是字符类型不能用==来判断
</font>
PRACTICE
完成一个银行柜员机存取款程序,账户初始余额为500元
-
首先完成用户登录页面,
使用if else语句进行逻辑判断返回数值`Scanner scanner = new Scanner(System.in); String name = "zhangsan"; String psd = "201314"; int money = 500; System.out.println("请输入账号:"); String ipt = scanner.next(); System.out.println("请输入账号:"); String psdIpt = scanner.next(); if (ipt.equals(name) && psdIpt.equals(psd)) { System.out.println(name + ",欢迎回来"); } else { System.out.println("密码或用户名输入错误,请重新输入!"); }`
-
登录页面完成后我们就可以在用户使用页面进行用户操作:
首先要登录成功才可以进行下面的操作,所以在第一个if判定正确时展开下一步选择:`if (ipt.equals(name) && psdIpt.equals(psd)) { System.out.println(name + ",欢迎回来"); System.out.println("请选择办理的业务:1. 存款,2.取款,3. 查询余额,4. 退出登录"); int choice = scanner.nextInt(); switch (choice) { case 1: System.out.println("请输入存款额,金额需为100的倍数"); int count = scanner.nextInt(); money = money + count; System.out.println("存款成功,您的余额为:" + money + "元"); break; case 2: System.out.println("请输入取款金额:"); int draw = scanner.nextInt(); if (draw > money) { System.out.println("您的余额不足!"); } else { money = money - draw; System.out.println("取款成功,您的余额为:" + money + "元"); } break; case 3: System.out.println("查询成功,您的余额为:" + money + "元"); break; case 4: System.out.println("您已退出登录!"); break; default: System.out.println("您的操作有误,请重新输入!"); break; } }`
-
在这里需要考虑的问题是只有四个选项所以采用了switch case语句,
在取款的这一选项中需要考虑余额不足的因素,所以要嵌套使用if语句进行判断,最终可以实现取款的功能。
在这次练习中,最大的问题就是总是忘记使用break语句,也就是老师所说的存款一会变一下,因为没有break,所以程序会不断地执行,直到整个程序的结束。
需要注意的是money需要写在循环外部,应该定义为全局变量。 -
为了减少代码嵌套,所以声明一个布尔值
boolean flag = false;
如果登录成功,令flag=true;if(flag){ 进入功能选择 }
可以将登录和存取功能分开,即模块化。
网友评论