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("");
}