2021年7月15日
讲师:王博
Id:10.8.168.235
今日内容
·分支
- 昨天遗留的内容-逻辑运算符
0.0逻辑运算符的短路原则
&&
逻辑与的短路原则
条件1&&条件2&&条件3
只要有一个条件为false,整体的结果就为false
如果条件1位false,条件2和条件3就不执行
||
逻辑或的断路原则
只要有一个条件为true,整体结果为true
只要有一个条件为true,后面的条件就不执行
1分支
生活中的分支:人生中的选择
程序中的分支,也是一个选择
1.1if分支
语法格式:
If(条件){
语句体
}
条件必须是布尔类型的数据,要么是true,要么是false
执行流程:如果条件为true,就执行条件后面大括号里的内容,如果为false,就跳过该条件,去执行下面的代码
1.2if -else分支
语法格式:
If(条件){
语句体1
}else{
语句体2
}
执行流程:当程序运行到if-else 之后,如果条件为true,执行语句体1,否则执行语句体2,两者只能取其一。
1.3if-else if分支结构
语法格式:
If(条件1){
语句体1
}else if(条件2){
语句体2
}else if(条件3){
语句体3
}else{
语句体4
}
执行流程:当程序运行到if时,首先判断小括号里面的内容,如果条件为false就跳过与具体,执行下面else if的条件,直到条件为true,就输出打印,下面的条件就不用再判断。
package www.liujinghe.app;
/**
* if-else if()结构
*/
public class Demo4 {
public static void main(String[] args) {
/**
* 学生的成绩
* 90-100 打印A
* 80-90 打印B
* 70-80 打印C
* 60-70 打印D
* 60以下 打印E
*/
int score = 70;
if(score >=90 && score <= 100) {
System.out.println("A");
}else if(score >= 80) {
System.out.println("B");
}else if(score >= 70) {
System.out.println("C");
}else if(score >= 60) {
System.out.println("D");
}else {
System.out.println("E");
}
}
}
1.4switch-case分支
只要满足当前的条件就可以执行当前的操作
语法格式:
Switch(表达式){
Case 常量1:
语句体1;
Break;
Case 常量2:
语句体2;
Break;
Case 常量3:
语句体3;
Break;
Default:
语句体n;
Break;
}
Break:终止,打断的意思
1.5案例1
请插入你的卡,输出密码
- 密码输入正确
密码正确,选择办理的业务
1:取款 2:存款 3:修改密码
- 密码输入错误
package www.liujinghe.app;
import java.util.Scanner;
public class Demo9 {
public static void main(String[] args) {
/**
* 取款小案例
* 请插入你的卡,输出密码
* 1.密码输入正确
* 2.密码输入错误
* 使用if-else
*/
System.out.println("请插入你的银行卡:");
Scanner scanner = new Scanner(System.in);
System.out.println("请输入密码:");
int number = scanner.nextInt();//输入的密码
int password = 123456;//银行卡的密码
int account = 10000;
if (number == password) {
//密码输入正确
//选择办理的业务
//1:取款 2:存款 3:修改密码
System.out.println("登录成功");
System.out.println("请选择业务:1:取款 2:存款 3:修改密码");
Scanner scanner1 = new Scanner(System.in);
int access = scanner1.nextInt();//选择业务
if ( access == 1) {
//取款
//请输入取款的金额
System.out.println("请输入取款的金额:");
Scanner scanner2 = new Scanner(System.in);
int outMoney = scanner2.nextInt();//取款的金额
System.out.println("你的取款金额为:"+ outMoney);
int accout1 = account - outMoney;//目前取款后的金额
if(outMoney > account){
System.out.println("余额不足");
}else{
System.out.println("取款成功,请取卡");
System.out.println("你卡里的余额为:"+accout1);
}
}else if ( access == 2 ) {
//存款
System.out.println("请输入你的存款金额");
Scanner scanner2 = new Scanner(System.in);
int inMoney = scanner2.nextInt();//存款的金额
int account3 = account + inMoney;
System.out.println("你卡里的金额为:"+account3);
System.out.println("存款成功,请取卡");
}else if ( access == 3 ) {
//修改密码
System.out.println("请输入原始密码:");
Scanner scanner2 = new Scanner(System.in);
int word = scanner2.nextInt();//输入的原始密码
if( word == password ) {
System.out.println("请设置新密码:");
Scanner scanner3 = new Scanner(System.in);
int newPassword = scanner3.nextInt();//输入的新密码
password = newPassword;
System.out.println("密码修改成功");
}else {
//原始密码错误
System.out.println("原始密码错误");
}
System.out.println("修改密码");
}else{
System.out.println("输入错误。程序退出");
System.exit(0);
}
} else {
System.out.println("密码错误,请重新输入");
}
}
}
1.6案例2
判断输入的一个年份是否是平年或者闰年
闰年:能被400整除,或者能被4整除但不能被100整除的年份
package www.liujinghe.app;
import java.util.Scanner;
public class Demo10 {
/**
* 判断平年还是闰年
*/
public static void main(String[] args) {
System.out.println("请输入一个年份:");
Scanner scanner = new Scanner(System.in);
int year = scanner.nextInt();//输入的年份
if (year % 400 == 0 || (year % 4 ==0 && year % 100 !=0)){
System.out.println(year + "是闰年");
} else{
System.out.println(year + "是平年");
}
}
}
1.7案例3
三个数,比较大小,输入最大的那个数
package www.liujinghe.app;
import java.util.Scanner;
public class Demo11 {
/**
* 三个数,比较大小,输出最大的数
*/
public static void main(String[] args) {
System.out.println("请输入三个数:");
Scanner scanner = new Scanner(System.in);
int a = scanner.nextInt();
int b = scanner.nextInt();
int c = scanner.nextInt();
if (a > b && a > c) {
System.out.println(a);
} else if (b > a && b > c) {
System.out.println(b);
} else if (c > a && c > b) {
System.out.println(c);
} else {
System.out.println(a);
}
}
}
1.8案例4
输入一个月份,打印对应的季节(春夏秋冬)
package www.liujinghe.app;
import java.util.Scanner;
public class Demo12 {
/**
* 输入一个月份,打印对应的季节(春夏秋冬)
* 3 4 5
* 6 7 8
* 9 10 11
* 12 1 2
*/
public static void main(String[] args) {
System.out.println("请输入一个月份");
Scanner scanner = new Scanner(System.in);
int month = scanner.nextInt();
if(month >= 13 || month <= 0){
System.out.println("输入错误,请重新输入");
}
if (month >= 3 && month <= 5) {
System.out.println("春季");
} else if (month >= 6 && month <= 8) {
System.out.println("夏姬");
} else if (month >= 9 && month <= 11) {
System.out.println("秋季");
}else if (month == 12 || month >= 1 && month <= 2) {
System.out.println("冬季");
}
}
}
补充知识点:
现在声明变量的时候,直接初始化的值,这个值是在代码中写好的,在控制台手动输入,输入完以后的值再赋给变量。
·.需要导包:import java.util.Scanner;
·创建scanner对象:Scanner sc = new Scanner(System.in);
·使用sc这个对象获取控制台输入的数据,赋值给变量
获取int类型的数据:int i = sc.nextInt();
获取float类型的数据:float v = sc.nextFloat();
获取double类型的数据:double v1 = sc.nextDouble();
获取字符串:String s = sc.nextLine();
获取字符:char c = sc.next().charAt(0);
练习代码:
package www.liujinghe.app;
import java.util.Scanner;
public class Demp5 {
public static void main(String[] args) {
int score = 0;
Scanner scanner = new Scanner(System.in);
System.out.println("请输入成绩:");
score = scanner.nextInt();
//合法性判断
if(score <0 || score >100){
System.out.println("请重新输入!");
//退出程序
System.exit(0);
}
if(score >=90 && score <= 100) {
System.out.println("A");
}else if(score >= 80) {
System.out.println("B");
}else if(score >= 70) {
System.out.println("C");
}else if(score >= 60) {
System.out.println("D");
}else {
System.out.println("E");
}
}
}
作业:
·今日代码敲三次以上
·金山打字通
Idea:格式代码
Code》reformat code
使用静态IP
网络和Internet》更改适配器选项》以太网属性》Ipv4》属性
浙公网安备 33010602011771号