运算符和分支结构

1.运算符

1.1关系运算符
>(是否大于)   <(是否小于)   >=(是否大于等于)   <=(是否小于等于)  !=(是否不等于) == (是否等于)
关系运算符的返回的结果必须是一个布尔类型的数据
package com.qfedu.a_operation;

public class Demo1 {
	public static void main(String[] args) {
		//关系运算结果都是布尔类型的数据
		boolean ret = (3 > 4);//把 3 > 4  的结果赋值给 ret
		System.out.println(ret);
		boolean ret1 = 3 < 4;
		System.out.println(ret1);//true
		
		boolean ret2 = 1 <= 3;
		System.out.println(ret2);//true
		boolean ret3 = (3 != 3);//false
		System.out.println(ret3);
		boolean ret4 = (3 == 1);
		System.out.println(ret4);//false
	}
}

1.2逻辑运算符

返回的结果也是一个布尔类型非数据

与: &&

​ 语法格式: 条件1 && 条件2 && …

​ 条件的返回值必须是布尔类型的数据

​ 条件1和条件2都为true的时候整体的结果返回的是true。条件1和条件2只要一个为false就整体false

​ 银行里面的保险柜钥匙和密码

或:||

​ 语法格式: 条件1 || 条件2 || …

​ 条件的返回值必须是布尔类型的数据

​ 条件1和条件2都为false的时候才为false,只要一个为true就为true

​ 宿舍里面的钥匙:你拿一把,亲室友拿一把。 你的丢了。你室友可以开。除非两个都丢了

非: !

​ 语法格式:!条件
​ 取反

package com.qfedu.a_operation;

public class Demo2 {
	public static void main(String[] args) {
		// 逻辑与
		boolean ret = (3 > 4) && (5 > 2);
		// false && true
		// 与 只要一个条件为false,就整体为false
		System.out.println(ret);// false
		boolean ret1 = 4 >= 3 && 5 > 2 && 7 < 9;
		// true && true && true
		System.out.println(ret1);

		// 逻辑或 两个为flase才为false,只要一个为true就为true
		boolean ret2 = (3 > 8) || (5 > 2);
		System.out.println(ret2);// true
		boolean ret3 = (4 > 5) || (5 > 6) || (7 > 8) || (9 > 10);
		System.out.println(ret3);
		
		//取反
		boolean ret4 = !(3 > 4);
		System.out.println(ret4);//true
	}

}

1.3逻辑运算符的断路原则

逻辑与的断路原则:

​ 条件1 && 条件2&&条件3…

​ 如果条件1为false的话,整体就为false。那么条件2和条件3就不执行了

​ 是因为条件1已经确定为false了,后面的多个条件对结果没有影响了。java为了提高代码的执行效率。就不执行后面的条件了

逻辑或的断路原则:

​ 条件1 || 条件2||条件3…

​ 如果条件为true的话,整体就为true。那么后面的条件就不再执行了

​ 是因为条件1已经确定为true了,后面的多个条件对结果没有影响了。java为了提高代码的执行效率。就不执行后面的条件了

package com.qfedu.a_operation;

public class Demo3 {
	public static void main(String[] args) {
		int num = 10;
		//3 > 4  false 
		//(++num > 9)  就没有执行
		//逻辑与的断路原则
		boolean ret = (3 > 3) && (++num > 14);
		System.out.println(ret);//false
		System.out.println(num);//10
		
		//逻辑或的断路原则
		int num1 = 20;
		boolean ret1 = 3 > 2 ||  ++num1 > 20;
		System.out.println(ret1);//true
		System.out.println(num1);//20
	}

}

总结:

​ 算术运算符 加减乘除取余

​ 关系运算符 大于 小于 大于等于 小于等于 不等于 等于等于

​ 逻辑运算符 且 或 非

2.分支结构【重点】

先学语法格式和意思

生活中有分支:是一种选择

程序中也是一种选择

2.1if 分支

语法格式:

​ if (条件) {

​ 语句体

​ }

​ 条件的返回值必须是布尔类型的数据

​ 执行流程:如果条件为true,就会执行大括号里面的语句体。如果条件为false,跳过大括号去执行下面的代码

package com.qfedu.a_operation;

public class Demo4 {
	public static void main(String[] args) {
		int money = 10;
		 (money > 8) {
			System.out.println("今天吃顿好的,吃个黄焖鸡");
		}
		System.out.println("程序结束");
//		if (money > 8) 可以省略大括号
//			System.out.println("今天吃顿好的,吃个黄焖鸡");
//		
	}

}

2.2if-else 分支

语法格式:

​ if (条件) {

​ 语句体1

​ } else {

​ 语句体2

​ }

执行流程:如果条件为true的话吗,执行语句体1跳过else后面大括号的语句体2 ,往下执行。

如果条件为false的话,跳过语句体1去执行语句体2。二者只选择其一

package com.qfedu.a_operation;

public class Demo5 {
	public static void main(String[] args) {
		int a = 20;
		if (a > 20) {
			System.out.println("今天中午吃泡面,加蛋加肠");
		} else {
			System.out.println("喝西北风");
		}
		System.out.println("程序结束");
	}
}

2.3if-else if()分支

语法格式

if (条件1) {
    语句体1
} else if (条件2) {
    语句体2
} else if (条件3) {
    语句体3
} else {
    语句体
}

执行流程:如果条件1位true 执行语句体1,其他不执行。,一定要注意一句话。只要遇到条件为true就执行当前条件后面的与语句体。跳过后面的额外语句,执行非if-else语句

package com.qfedu.a_operation;

public class Demo6 {

	public static void main(String[] args) {
		/*
		 * 学生的成绩:
		 * 90-100 :打印秀儿
		 * 80-90:良好
		 * 70-80:一般
		 * 60-70:及格
		 * 60以下:叫家长
		 * 
		 * */
		int score = 80;
		if (score >= 90 && score <= 100) {
			System.out.println("秀儿");
		} else if (score >= 80 && score < 90) {
			System.out.println("良好");
			
		} else if (score >= 70 && score < 80) {
			System.out.println("一般");
		} else if (score >= 60 && score < 70) {
			System.out.println("及格");
		} else {
			System.out.println("叫家长");
		}
		System.out.println("程序结束");
	}
}



2.4switch-case 分支

也是一种选择,只要满足当前的条件就可以执行当前的操作

表达式:int a = 10 3 > 4

语法格式:

switch (表达式) {
    case 常量1:
        语句体1;
        break;
    case 常量2:
        语句体2;
        break;
    case 常量3:
        语句体3;
        break;
    ...
    default:
        语句体n;
        break;
        
}

执行流程:switch后面有个小括号,小括号里面是表达式,会产生一个值,这个值会和下面的case常量做匹配。如果匹配到就执行当前的语句体

package com.qfedu.a_operation;

public class Demo9 {
	public static void main(String[] args) {
		/**
		 * 按钮1 给爸爸打电话
		 * 按钮2 给妈妈打电话
		 * 按钮3 给爷爷打电话
		 * 按钮4 给奶奶打电话
		 * 点击其他按钮 报警
		 * 
		 */
		int a = 3;
		switch (a) {
		case 1:
			System.out.println("给爸爸打电话");
			break;
		case 2:
			System.out.println("给妈妈打电话");
			break;
			//break;终止打断的意思
		case 3:
			System.out.println("给爷爷打电话");
			break;
		case 4:
			System.out.println("给奶奶打电话");
			break;

		default:
			System.out.println("报警");
			break;
		}
	}

}

package com.qfedu.a_operation;

import java.util.Scanner;

public class Demo10 {
	public static void main(String[] args) {
		//找规律,因为你是哦匹配的
		//学生成绩使用swicth-case来写
		Scanner sc = new Scanner(System.in);
		System.out.println("输入吧:");
		int score = sc.nextInt();
		
		switch (score / 10) {
		case 10:
			System.out.println("秀儿");
			break;
		case 9:
			System.out.println("秀儿");
			break;
		case 8:
			System.out.println("良好");
			break;
		case 7:
			System.out.println("一般");
			break;
		case 6:
			System.out.println("及格");
			break;
		
		default:
			System.out.println("叫家长");
			break;
		}
	}

}

面试题:

switch(表达式):
常量的是什么数据类型的:
	byte  short  int  可以  long 你不可以
	char  可以
	String   jdk 1.7以后可以
	float  double  都不可以
	boolean  不可以
2.5案例
控制台打印如下的内容:
		请插卡,输入密码:
			1.密码正确if
				选择办理的业务:1 取款   2  存款   3  修改密码
					下面分四种情况
						1:取款  取款的业务逻辑if
							1.取款的金额大于账户余额 if
							2.取款金额小于账户余额 else
						2:存款  存款的业务逻辑else if
						3:修改密码  修改密码的业务逻辑 else if
							1.先确认原始密码成功才让你修改if
								输入两次新的密码又要进行判断了
								if  两次新密码一样的
								else两次新密码不一样的
							2.确认原始密码失败else
						4:输入的其他的 else
			2.密码错误else 
package com.qfedu.a_operation;

import java.util.Scanner;

public class Demo12 {
	public static void main(String[] args) {
		int password = 123456;//银行密码  123456
		int acount =  1000;//卡里的余额
		System.out.println("请输入您的密码:");
		Scanner scanner = new Scanner(System.in);
		int number = scanner.nextInt();//取到控制台的手动输入的值
		//拿到控制台的输入的值 和 当前变量 password 做对比
		if (number == password) {
			//密码正确的一种的一种情况
			System.out.println("密码正确,登录成功!!!");
			System.out.println("请选择办理的业务:1 取款  2 存款  3修改密码");
			Scanner scanner2 = new Scanner(System.in);
			int access = scanner2.nextInt();//选择办理业务的序号
			System.out.println(access);
			if (access == 1) {
				//取款的业务
				//请输入你取款的金额
				System.out.println("请输入您取款的金额:");
				Scanner scanner3 = new Scanner(System.in);
				int outMoney = scanner3.nextInt();
				System.out.println("您输入的取款金额为:"+outMoney);//取款的金额
				//判断输入的金额是否大于当期账户余额
				if (outMoney > acount) {
					//余额不足的情况
					System.out.println("余额不足");
				} else {
					//取款金额少于你的当前账户余额的。可以让你取
					int acount1 = acount - outMoney;//取完钱以后的余额
					System.out.println("您卡里的余额为:" + acount1);
					System.out.println("请取走您的卡片。欢迎下次光临");
					System.exit(0);//
					
				}
			} else if (access == 2) {
				//存款的业务
				System.out.println("请输入您存款的金额:");
				Scanner scanner4 = new Scanner(System.in);
				int inMoney = scanner4.nextInt();//存款的金额
				int acount2 = acount + inMoney;
				System.out.println("存款成功,当前余额为:" + acount2);
				System.exit(0);
			} else if (access == 3) {
				//修改密码的业务
				System.out.println("请输入原始密码:");
				Scanner scanner5 = new Scanner(System.in);//还要再次输入正确的密码
				int password1 = scanner5.nextInt();
				if (password1 == password) {
					//原始密码正确
					System.out.println("请输入新的密码:");
					Scanner scanner6 = new Scanner(System.in);
					//重新修改的新密码
					int newPassword = scanner6.nextInt();
					System.out.println("再次输入新的密码:");
					Scanner scanner7 = new Scanner(System.in);
					int newPassword1 = scanner7.nextInt();
					//两个新密码 做对比 又要写if-else
					if (newPassword == newPassword1) {
						//两次的新密码我才让你修改
						password = newPassword;
						System.out.println("当前新密码为:" + password);
						System.out.println("修改成功,退出");
						System.exit(0);
						
					} else {
						//两次新密码不一样
						System.out.println("两次密码不一样。退出");
						System.exit(0);
					}
				} else {
					//原始密码错误
					System.out.println("原始密码错误,退出");
					System.exit(0);
				}
				
			} else {
				//没有这样的业务
				System.out.println("没有这样的业务");
				System.exit(0);
			}
			
		} else {
			//密码错误的情况
			System.out.println("密码错误");
		}
	}

}

扩展知识点

在声明变量的时候,直接对值进行初始化 int score= 80;

如果声明一个变量,在控制台中输入一个值,赋值给声明好的变量

1.需要导包

import java.util.Scanner;

2.创建一个对象,变量

Scanner sc = new Scanner(System.in);

3.通过sc变量可以获取控制台的数据

​ 获取int类型的数据 sc.nextInt();

​ 获取float类型的数据 sc.nextFloat();

​ 获取double类型的数据 sc.nextDouble();

​ 获取String类型化的数据 sc.nextLine();

​ 获取char类型的数据 sc.nextLine().charAt(0);

package com.qfedu.a_operation;

import java.util.Scanner;

public class Demo7 {
	public static void main(String[] args) {
		//这行代码是固定的
		Scanner sc = new Scanner(System.in);
		System.out.println("亲,请输入:");
		//控制台执行 输入一个int类型的数据,控制台进行捕捉将int类型的数据赋值给了i
//		int i = sc.nextInt();//在控制台输入一个数字,赋值给了当前代码的i变量s
//		System.out.println(i);
//		double d = sc.nextDouble();//控制台输入double类型的数据
//		System.out.println(d);
		//String类型的数据
//		String str = sc.nextLine();
//		System.out.println(str);
		//char类型的数据
		//abcdefg
		char c = sc.nextLine().charAt(0);
		System.out.println(c);
	}

}

package com.qfedu.a_operation;

import java.util.Scanner;

public class Demo8 {
	public static void main(String[] args) {
		Scanner sca = new Scanner(System.in);
		System.out.println("请输入你的成绩:");
		
		int score = sca.nextInt();
		//合法性的判断
		if (score < 0 || score > 100) {
			System.out.println("亲,你个逗比输错了!!!");
			//退出程序
			System.exit(0);
		}
		if (score >= 90 && score <= 100) {
			System.out.println("秀儿");
		} else if (score >= 80 && score < 90) {
			System.out.println("良好");
			
		} else if (score >= 70 && score < 80) {
			System.out.println("一般");
		} else if (score >= 60 && score < 70) {
			System.out.println("及格");
		} else {
			System.out.println("叫家长");
		}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值