Java 总结三: 运算符

1. ⭐️运算符介绍⭐️

📚运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等。

运算符:
☕️ 算术运算符
☕️ 赋值运算符
☕️ 关系运算符 [比较运算符]
☕️ 逻辑运算符
☕️ 位运算符 [需要二进制基础]
☕️ 三元运算符

2. ⭐️算术运算符⭐️

📚 算术运算符是对数值类型的变量进行运算的,在 Java 程序中使用的非常多。

在这里插入图片描述

/**
 * 演示算术运算符的使用
 */
public class ArithmeticOperator {
    //编写一个 main 方法
    public static void main(String[] args) {
        // /使用
        System.out.println(10 / 4); //从数学来看是 2.5, java 中 2
        System.out.println(10.0 / 4); //java 是 2.5
        // 注释快捷键 ctrl + /, 再次输入 ctrl + / 取消注释
        double d = 10 / 4;//java 中 10 / 4 = 2, 2=>2.0
        System.out.println(d);// 是 2.0
        // % 取模 ,取余
        // 在 % 的本质 看一个公式!!!! a % b = a - a / b * b
        // -10 % 3 => -10 - (-10) / 3 * 3 = -10 + 9 = -1
        // 10 % -3 = 10 - 10 / (-3) * (-3) = 10 - 9 = 1
        // -10 % -3 = (-10) - (-10) / (-3) * (-3) = -10 + 9 = -1
        System.out.println(10 % 3); //1
        System.out.println(-10 % 3); // -1
        System.out.println(10 % -3); //1
        System.out.println(-10 % -3);//-1
        //++的使用
        //
        int i = 10;
        i++;//自增 等价于 i = i + 1; => i = 11
        ++i;//自增 等价于 i = i + 1; => i = 12
        System.out.println("i=" + i);//12
        /*
        作为表达式使用
        前++:++i 先自增后赋值
        后++:i++先赋值后自增
        */
        //注意下面代码
        int j = 8;
        //int k = ++j; //等价 j=j+1;k=j;
        int k = j++; // 等价 k =j;j=j+1;
        System.out.println("k=" + k + "j=" + j);//8 9
    }
}

📚总结:

☕️对于除号"/",它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。例如:int x= 10/3 ,结果是3。
☕️当对一个数取模时,可以等价a%b=a-a/b*b,这样我们可以看到取模的一个本质运算。
☕️当自增当做一个独立语言使用时,不管是++;还是 i++;都是一样的,等价。

       //注意下面代码
        int j = 8;
        //int k = ++j; //等价 j=j+1;k=j;
        int k = j++; // 等价 k =j;j=j+1;
        System.out.println("k=" + k + "j=" + j);//8 9

⭐️注意下面两个面试题:⭐️
📚面试题1

int i=1;
i=i++;
System.out.println(i);

问:结果是多少?为什么?
答:结果是1,因为:

i=i++;//规则使用临时变量:(1) temp=i;(2) i=i+1;(3)i=temp;
System.out.println(0);//1

📚面试题2

int i=1;
i=++i;
System.out.println(i);

问:结果是多少?为什么?
答:结果是2,因为:

i=++i;//规则使用临时变量:(1) i=i+1;(2) temp=i;(3)i=temp;
System.out.println(0);//2

📚算术运算符练习
T1:假如还有 59 天放假,问:合 xx 个星期零 xx 天

public class ArithmeticOperatorExercise01 {
    //编写一个 main 方法
    public static void main(String[] args) {
        //1.需求:
        //假如还有 59 天放假,问:合 xx 个星期零 xx 天
        //2.思路分析
        //(1) 使用 int 变量 days 保存 天数
        //(2) 一个星期是 7 天 星期数 weeks: days / 7 零 xx 天 leftDays days % 7
        //(3) 输出
        //3.走代码
        int days = 59;
        int weeks = days / 7;
        int leftDays = days % 7;
        System.out.print(days + "天 合" + weeks + "星期零" + leftDays + "天");
    }
}

T2:定义一个变量保存华氏温度,华氏温度转换摄氏温度的公式为:5/9*(华氏温度-100),请求出华氏温度对应的摄氏温度。

public class ArithmeticOperatorExercise02 {
    //编写一个 main 方法
    public static void main(String[] args) {
        //1.需求
        //定义一个变量保存华氏温度,华氏温度转换摄氏温度的公式为
        //:5/9*(华氏温度-100),请求出华氏温度对应的摄氏温度
        //
        //2 思路分析
        //(1) 先定义一个 double huaShi 变量保存 华氏温度
        //(2) 根据给出的公式,进行计算即可 5/9*(华氏温度-100)
        // 考虑数学公式和 java 语言的特性
        //(3) 将得到的结果保存到 double sheShi
        //3 走代码
        double huaShi = 1234.6;
        double sheShi = 5.0 / 9 * (huaShi - 100);//注意是使用5.0
        System.out.println("华氏温度" + huaShi + " 对应的摄氏温度=" + sheShi);
    }
}

3. ⭐️关系运算符(比较运算符)⭐️

☕️关系运算符的结果都是 boolean 型,也就是要么是 true,要么是 false.
☕️ 关系表达式经常用在 if 结构的条件中或循环结构的条件中.

📚 关系运算符一览
在这里插入图片描述

📚 细节说明

☕️关系运算符的结果都是 boolean 型,也就是要么是 true,要么是 false;
☕️ 关系运算符组成的表达式,我们称为关系表达式,如: a > b;
☕️ 比较运算符"==“不能误写成”="

4. ⭐️逻辑运算符⭐️

☕️用于连接多个条件(多个关系表达式),最终的结果也是一个 boolean 值

1. 逻辑运算符一览

分为两组学习:
☕️ 短路与 && , 短路或 ||,取反 !
☕️ 逻辑与 &,逻辑或 |,^ 逻辑异或
在这里插入图片描述

2. 说明逻辑运算规则:

☕️ a&b : & 叫逻辑与:规则:当 a 和 b 同时为 true ,则结果为 true, 否则为 false
☕️ a&&b : && 叫短路与:规则:当 a 和 b 同时为 true ,则结果为 true,否则为 false
☕️a|b : | 叫逻辑或,规则:当 a 和 b ,有一个为 true ,则结果为 true,否则为 false
☕️ a||b : || 叫短路或,规则:当 a 和 b ,有一个为 true ,则结果为 true,否则为 false
☕️ !a : 叫取反,或者非运算。当 a 为 true, 则结果为 false, 当 a 为 false 是,结果为 true
☕️) a^b: 叫逻辑异或,当 a 和 b 不同时,则结果为 true, 否则为 false

⭐️注意:&& 和 & 使用区别

☕️&&短路与:如果第一个条件为 false,则第二个条件不会判断,最终结果为 false,效率高
☕️& 逻辑与:不管第一个条件是否为 false,第二个条件都要判断,效率低

⭐️注意:|| 和 | 使用区别

☕️ ||短路或:如果第一个条件为 true,则第二个条件不会判断,最终结果为 true,效率高
☕️ | 逻辑或:不管第一个条件是否为 true,第二个条件都要判断,效率低

5. ⭐️赋值运算符⭐️

📚赋值运算符就是将某个运算后的值,赋给指定的变量。

+= ,-= ,*= , /= ,%= 等 , 重点讲解一个 += ,其它的使用是一个道理

a += b; [等价 a = a + b; ]
a -= b; [等价 a = a - b; ]

6. ⭐️三元运算符⭐️

1. 基本语法

条件表达式 ? 表达式 1: 表达式 2;
📚运算规则:
☕️ 如果条件表达式为 true,运算后的结果是表达式 1;
☕️ 如果条件表达式为 false,运算后的结果是表达式 2。

2. 三元运算符使用

public class TernaryOperator {
    //编写一个 main 方法
    public static void main(String[] args) {
        int a = 10;
        int b = 99;
        // 解读
        // 1. a > b 为 false
        // 2. 返回 b--, 先返回 b 的值,然后在 b-1
        // 3. 返回的结果是 99
        int result = a > b ? a++ : b--;
        System.out.println("result=" + result);//result=99
        System.out.println("a=" + a);//a=10
        System.out.println("b=" + b);//b=98
    }
}

3. 使用细节

📌 表达式 1 和表达式 2 要为可以赋给接收变量的类型(或可以自动转换);
📌 三元运算符可以转成 if–else 语句。

//三元运算符细节
public class TernaryOperatorDetail {
    //编写一个 main 方法
    public static void main(String[] args) {
        //表达式 1 和表达式 2 要为可以赋给接收变量的类型
        //(或可以自动转换/或者强制转换)
        int a = 3;
        int b = 8;
        int c = a > b ? (int)1.1 : (int)3.4;//可以的
        System.out.println(c);//3
        double d = a > b ? a : b + 3;//可以的,满足 int -> double
        System.out.println(d);//11.0
    }
}

4. 案例:实现三个数的最大值

public class TernaryOperatorExercise {
    //编写一个 main 方法
    public static void main(String[] args) {
        //案例:实现三个数的最大值
        int n1 = 553;
        int n2 = 33;
        int n3 = 123;
        //思路
        //1. 先得到 n1 和 n2 中最大数 , 保存到 max1
        //2. 然后再 求出 max1 和 n3 中的最大数,保存到 max2
        int max1 = n1 > n2 ? n1 : n2;
        int max2 = max1 > n3 ? max1 : n3;
        System.out.println("最大数=" + max2);//最大数=553
        //使用一条语句实现, 推荐使用上面方法
        //提示: 后面我们可以使用更好方法,比如排序
        // int max = (n1 > n2 ? n1 : n2) > n3 ?
        // (n1 > n2 ? n1 : n2) : n3;
        // System.out.println("最大数=" + max);
    }
}

7. ⭐️运算符优先级⭐️

📌 运算符有不同的优先级,所谓优先级就是表达式运算中的运算顺序。如右表,上一行运算符总优先于下一行。
📌 只有单目运算符、赋值运算符是从右向左运算的。
📌 一览表, 不要背,使用多了,就熟悉了。
在这里插入图片描述

8. ⭐️标识符的命名规则和规范⭐️

📚标识符概念

  1. Java对各种变量、方法和类等命名时使用的字符序列称为标识符
  2. 凡是自己可以起名字的地方都叫标识符int num1 = 90;

📚标识符的命名规则(必须遵守)

  1. 由26个英文字母大小写,0-9,或$组成
  2. 数字不可以开头。
int 3ab = 1;//错误
  1. 不可以使用关键字和保留字,但能包含关键字和保留字。
  2. Java中严格区分大小写,长度无限制。
int totalNum = 10;
int n = 90;
  1. 标识符不能包含空格。int a b = 90;

📚练习:

hsp //ok
hsp12 //ok
1hsp //错误, 数字不能开头
h-s // 错误 , 不能有 - x h // 错误, 有空格
h$4 // ok
class //错误,class 关键字
int // 错误 ,int 是关键字
double //错误 ,double 是关键字
public //错误 ,public 是关键字
static //错误 ,static 是关键字
goto //错误, goto 是保留字
stu_name //ok

📚标识符命名规范[更加专业]

☕️ 包名:多单词组成时所有字母都小写:aaa.bbb.ccc //比如 com.hsp.crm
☕️ 类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz [大驼峰]
比如: TankShotGame
☕️ 变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz [小驼峰, 简称 驼峰法]
比如: tankShotGame
☕️ 常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ
比如 :定义一个所得税率 TAX_RATE
☕️ 后面我们学习到 类,包,接口,等时,我们的命名规范要这样遵守,更加详细的看文档.

9. ⭐️关键字⭐️

定义:被 Java 语言赋予了特殊含义,用做专门用途的字符串(单词)
特点:关键字中所有字母都为小写

在这里插入图片描述
在这里插入图片描述

10. ⭐️保留字⭐️

Java 保留字:现有 Java 版本尚未使用,但以后版本可能会作为关键字使用。自己命名标识符时要避免使用这些保留字 byValue、cast、future、 generic、 inner、 operator、 outer、 rest、 var 、 goto 、const。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值