Java学习第四天
多分支判断语句
if(条件){
//分支1
}else if (条件){
//分支2
}else{
//分支3
}
练习:输入金额,小于等于800元,买一个老年机。小于等于1500元,买一个小米手机,小于等于1500,买一个vivo。小于等于5000,买一个华为。否则买苹果。
Scanner scanner = new Scanner(System.in);
System.out.println("请输入现有金额");
int i = scanner.nextInt();
if (0<=i && i <= 800) {
System.out.println("只能买一个老年机");
} else if (i <= 1500) {
System.out.println("买一个小米手机");
} else if (i <= 2500) {
System.out.println("买一个vivo手机");
} else if (i <= 5000) {
System.out.println("买一个华为手机");
} else {
System.out.println("随便买");
}
练习2:模拟ATM取款机的操作(显示菜单,让客户选择功能)
- 查询
- 取款
- 转账
- 修改密码
System.out.println("1.查询");
System.out.println("2.转账");
System.out.println("3.取款");
System.out.println("4.修改密码");
Scanner scanner = new Scanner(System.in);
System.out.println("请输入您要进行的操作");
int i = scanner.nextInt();
if(i == 1){
System.out.println("正在查询");
}else if (i == 2){
System.out.println("正在转账");
}if(i == 3){
System.out.println("正在取款");
}else if(i == 4){
System.out.println("正在修改密码");
}else{
System.out.println("命令错误");
}
switch循环语句(开关语句)实现多分支判断
switch(条件){
case 值1:
执行语句1;
break;
case 值2:
执行语句2;
break;
case 值3:
执行语句3;
break;
default:
//其他情况的分支(排除异常)
执行语句;
break;
}
System.out.println("1.查询");
System.out.println("2.转账");
System.out.println("3.取款");
System.out.println("4.修改密码");
Scanner scanner = new Scanner(System.in);
System.out.println("请输入您要进行的操作");
int i = scanner.nextInt();
switch (i){
case 1:
System.out.println("正在查询");
break;
case 2:
System.out.println("正在转账");
break;
case 3:
System.out.println("正在取款");
break;
case 4:
System.out.println("正在修改密码");
break;
default:
System.out.println("输入错误,重新输入");
break;
}
注意事项
- case语句只能跟一个具体的值(可以是byte、char、short、int、String、枚举),不能跟条件、表达式
- 每个case结束后用break跳过后面的判断。如果没有break,后面的语句不再判断,直接执行,直到遇到有break的情况才会结束。
- default执行其他情况,default不受语句顺序影响(可以放到case语句之前)。
练习:用Switch实现学生管理系统的菜单选择。
===============
学生管理系统:
新增学生
修改学生
删除学生
查询学生
================
输入学生考试的成绩,判断学生是否及格。
Scanner scanner = new Scanner(System.in);
System.out.println("请输入您的成绩");
double i = scanner.nextDouble();
switch ((int)i/60){
case 0:
System.out.println("恭喜你,不及格");
break;
case 1:
System.out.println("恭喜你,及格了");
break;
}
循环
一段程序需要重复执行,就需要用到循环控制语句。
for循环
for(循环变量; 判断循环条件; 改变循环变量){
//循环体
}
for (int t=0;t<10;t++) {
System.out.println(t);
}
练习:计算1到100的和
int n =0;
for (int m=0;m<=100;m++){
n += m;
}
System.out.println(n);
练习:打印出1-100之间的奇数
for (int i=1;i<=100;i++){
if (i % 2 != 0) {
System.out.println(i);
}
}
- 循环变量递减
倒序打印10-1
for (int i=10;i>0;i--){
System.out.println(i);
}
- 多个循环变量
for (int i = 0,j = 100; i < 100 && j>0; i++,j--) {
if (i == j) {
System.out.println(i);
}
}
- 死循环
for(int i = 0;;i++){//不设条件即时死循环
System.out.println(i);
if (i == 999)
break;//达到条件即可跳出循环
}
- 退出循环的命令
- continue//跳出当次循环,执行下一次循环
- break//跳出当前循环语句的所有循环,剩余的循环就不再执行。
- return//结束方法,后面的所有语句都不执行,不仅仅是循环语句。
while循环
跟for循环非常类似,两种循环在大多数情况下可以相互替换,循环次数未知的情况下用while多一些。
语法
while(条件表达式){
//循环体
}
- 条件表达式为true的时候执行,为false时结束
- while循环也支持break、continue等命令。
int weight = 126;
while (weight >= 100){
System.out.println("正在减肥中,当前体重:"+weight);
weight--;
}
do while循环
do while跟while类似,区别在于do while至少会执行一次。
- 语法
- 至少会执行一次
- while后面必须要加分号
- do while也支持continue、break。
do{
//循环体
}while(条件表达式);
练习:计算1+1/2+1/3+…+1/888的和。
double sum = 0;
for (double b = 1;b<=888;b++){
sum = sum + 1 / b;
}
System.out.println(String.format("%.2f",sum));
循环嵌套
循环体里面又有循环语句,称为循环嵌套。
练习:九九乘法表
for (int i = 1; i < 10; i++) {
for (int j = 1; j <= i; j++) {
System.out.print(i+"x"+j+"="+j * i+"\t ");
}
System.out.println("");
}