1.
逻辑运算符
* 01. && 短路与 并且的关系
* 表达式1 && 表达式2
* 001.如果 表达式1为false,则不执行 表达式2
* 002.表达式1,表达式2都为true,整体返回true ! 否则false!
*
* 02. || 短路或 或者的关系
* 表达式1 || 表达式2
* 001.如果 表达式1为true,则不执行 表达式2
* 002.表达式1,表达式2有一个表达式为true,整体返回true !
* 003.两个表达式都为false!整体返回false!
* 03. ! 非 取反
例:
需求:
* 张浩的Java成绩大于98分,而且音乐成绩大于80分,老师会奖励他;
* 或者Java成绩等于100分,音乐成绩大于70分,老师也会奖励他
*
* 分析 :
* 01.什么条件才能获得奖励? 下面的两种情况都可以获取奖励
* 001.Java成绩>98 && 音乐成绩> 80分
* 002.Java成绩==100 && 音乐成绩> 70分
* 02.怎么把这两种情况 合并??
* 001 和 002 什么关系??
* 或者===》 ||
2. 我们之前用的是 逻辑运算符!
位运算符 :针对于2进制数字进行运算!
01. & 与运算符
两个数字进行操作,位置的数字都为1,结果为1,否则为0!===》num1=1010,num2=1011.num1&num2=1010
02. | 或运算符
两个数字进行操作,位置的数字有一个是1,结果为1,否则为0!===》num1|num2=1011
03.~ 非运算符
单个数字进行操作,位置的数字是1,结果为0 。数字是0,结果为1!===》num1=10,转换成2进制=1010,因为底层默认1010前面有多个000000000,所以~num1=111111111110101=-11
数字 取相反值 -1
04. ^ 异或运算符
两个数字进行操作,位置的数字相同,结果为0 。否则为1!===》num1^num2=0001
(拓展)05. >>
06. <<
源码 补码 反码
3.
// 十进制 转换成 二进制
System.out.println("10对应的2进制:" + Integer.toBinaryString(10));
// 二进制 转换成十进制
System.out.println(Integer.valueOf("1010", 2));
4.
String类中有equals的方法!
作用是 判断两个字符串的内容是否一致!
一致返回true!
否则返回false!
5.
需求:
* 得到一个随机数字! 让系统随机生成0 - 10 但是不包含 10
*
* 随机数 Random
* nextDouble()
*
* 算术类 Math
* Math.random() 让系统随机生成 0.0--1.0 但是不包含 1.0
01.代码:
public static void main(String[] args) {
// 实例化了一个 随机数 对象
Random r = new Random();
double num = r.nextDouble(); // 0.0 - 1.0 但是不包含 1.0
System.out.println("Random产生的随机数是:" + num);
num = Math.random();
System.out.println("Math产生的随机数是:" + num);
System.out.println("得到一个随机数字! 让系统随机生成0 - 10 但是不包含 10");
int result = (int) (Math.random() * 10);
System.out.println(result);
}
}
6.
使用多重if
* 注意点:
* 01.只要我们的条件满足,则执行一个代码块! 后续代码块哪怕是满足,也不执行!
* 02. 我们一般书写的时候 是 范围或者区间的判断!
* 但是 范围或者区间 一般都是从大到小!
7.
// 判断用户的输入是否可以转换成int类型
System.out.println("请您输入一个数字:");
boolean flag = input.hasNextInt();
String result = flag ? "您输入的是数字!" : "您输入的不是数字!";
System.out.println(result);