第5章 运算符

  1. 算数运算符

         运算符:对常量和变量进行操作的符号称为运算符

         表达式:用运算符把常量或者变量连接起来符号java语法的式子就可以称为表达式。

                       不同运算符连接的式子体现的是不同类型的表达式。

                       定义两个int类型的变量a,b,做加法(a + b)

          常用运算符

                           算术运算符

                           赋值运算符

                           关系运算符

                           逻辑运算符

                           三元运算符

      1.1算数运算符的基本用法

      1.2算数运算符概述

           A:什么是运算符:就是对常量和变量进行操作的符号。

           B:算数运算符有哪些:* +,-,*,/,%,++,-- 

      1.3代码案例

 

package com.itheima_01;

/*

 * 运算符:对常量和变量进行操作的符号

 * 表达式:用运算符连接起来的符合java语法的式子。不同类型的运算符连接起来的式子是不同的表达式。

 * 举例:定义两个int类型的变量a,b,

 * a + b

 *

 * 运算符分类:

 * 算术运算符,赋值运算符,关系运算符,逻辑运算符,三元运算符。

 *

 * 算术运算符:

 * +,-,*,/的基本使用

 */

public class OperatorDemo {

                public static void main(String[] args) {

                                // 定义两个变量

                                int a = 3;

                                int b = 4;

                                System.out.println(a + b);

                                System.out.println(a - b);

                                System.out.println(a * b);

                                System.out.println(a / b);

 

                                // 整数相除只能得到整数,要想得到小数,就必须有浮点数参与运算

                                System.out.println(3 / 4.0);

                                System.out.println(3.0 / 4);

                }

}

       1.4运算符取余和除法的区别

            %:取余运算符。得到的是两个相除数据的余数。

             /:除法运算符。得到是两个相除数据的商。

             使用场景: %:判断两个数据是否整除。

        1.5代码案例

              public class OperatorDemo2 {

                              public static void main(String[] args) {

                                         int a = 5;

                                         int b = 3;

                                          System.out.println(a / b);

                                          System.out.println(a % b);

                            }

              }

        1.6字符和字符串参与加法操作

             字符参与运算

             其实是拿该字符对应的数值来操作

             ‘a’ 97

            ‘A’ 65

            ‘0’ 48

字符串参与运算

            这里其实做的不是加法运算,而是字符串拼接。

            字符串和其他类型的数据做拼接,结果是字符串类型的。

         1.7代码案例

 

package com.itheima_01;

/*

 * 整数的加法。

 * 字符参与加法操作。拿字符在计算机中底层存储对应的数据值来参与运算的。

 * '0' 48

 * 'a' 97

 * 'A' 65

 * 字符串参与加法操作。

 * 这里的+其实不是加法,而是字符串连接符。

 */

public class OperatorDemo3 {

                public static void main(String[] args) {

                                // 整数加法

                                int a = 10;

                                int b = 20;

                                System.out.println(a + b);

                                System.out.println("------------------");

 

                                // 字符参与加法操作

                                char c = '0';

                                char c2 = 'a';

                                System.out.println(a + c);

                                System.out.println(a + c2);

                                System.out.println("------------------");

 

                                // 字符串参与加法操作

                                System.out.println("hello" + a);

                                System.out.println("hello" + a + b); // "hello"+10,然后再和b进行拼接

                                System.out.println(a + b + "hello");

                }

}

         1.8 算数运算符++和- - 的用法

               ++,--运算符:对变量做加1或者减1的操作。

               ++或者--既可以放在变量的后面,也可以放在变量的前面。

               单独使用的时候,++或者--无论是放在变量的前面还是后面,结果是一样的。

               参与操作的时候:

                                如果++或者--在变量的后面,先拿变量参与操作,后变量做++或者--

                               如果++或者--在变量的前面,先变量做++或者--,后拿变量参与操作

          1.9代码案例

              public class OperatorDemo4 {

                              public static void main(String[] args) {

                                          int a = 10;

                                          System.out.println("a:" + a);

                                          // 单独使用

                                          // a++;

                                          // ++a;

                                         // System.out.println("a:" + a);

                                         // 参与操作使用

                                          // int b = a++;

                                          int b = ++a;

                                         System.out.println("a:" + a);

                                          System.out.println("b:" + b);

              }

}

          2. 赋值运算符
          2.1
 赋值运算符分类

          基本的赋值运算符:=

          扩展的赋值运算符:+=,-=,*=,/=,%=

          +=: a+=20;相当于a = (a的数据类型)(a + 20);

     2.2代码案例     

 

package com.itheima_02;

/*

 * 赋值运算符:

 * A:基本 =

 * B:扩展 +=,-=,*=,...

 *

 * +=:

 * a+=20;

 * 相当于

 * a = (a的数据类型)(a + 20);

 */

public class OperatorDemo {

                public static void main(String[] args) {

                                // 把10赋值给int类型的变量a

                               int a = 10;

 

                                // += 把左边和右边的数据进行运算,最后赋值给左边。左边的只能是变量

                               a += 10;// 相当于a = a + 10

                                System.out.println("a:" + a);

                                System.out.println("----------------------");

 

                                short s = 10;

                                // s += 20; // 相当于 s = s + 20;

                               s = (short) (s + 20);

                                System.out.println("s:" + s);

                }

}

3. 关系运算符

3.1 基本使用及注意事项

      关系运算符包含以下内容:==,!=,>,>=,<,<=

      关系运算符的结果都是boolean型,也就是要么是true,要么是false。

      注意事项:关系运算符“==”不能误写成“=”。

3.2代码案例

package com.itheima_03;

/*

 * 关系运算符:

 * ==,!=,>,>=,<,<=

 * 关系运算符的结果是boolean类型。

 *

 * 注意:

 * 千万不要把==写成=

 */

public class OperatorDemo {

                public static void main(String[] args) {

                            int a = 10;

                            int b = 20;

                            int c = 10;

                            System.out.println(a == b);

                            System.out.println(a == c);

                            System.out.println("-----------------");

                            System.out.println(a != b);

                            System.out.println(a != c);

                            System.out.println("-----------------");

                            System.out.println(a > b);

                            System.out.println(a > c);

                            System.out.println("-----------------");

                            System.out.println(a >= b);

                            System.out.println(a >= c);

                            System.out.println("-----------------");

                            int x = 3;

                            int y = 4;

                            // System.out.println(x == y);

                            // System.out.println(x = y);// 把y赋值给x,把x的值输出

                            boolean bb = (x == y);

                            // 报错

                            // boolean cc = (x = y);

                            int cc = (x = y);

              }

}

4. 逻辑运算符

4.1 逻辑运算符概述

      A:逻辑运算符有哪些

            &,|,^,!

            &&,||

       B:案例演示

             逻辑运算符的基本用法

       C:注意事项:

            a:逻辑运算符一般用于连接boolean类型的表达式或者值。

            b:表达式:就是用运算符把常量或者变量连接起来的符合java语法的式子。

              算术表达式:a + b

             比较表达式:a == b(条件表达式)

       D:结论:

              &逻辑与:有false则false。

              |逻辑或:有true则true。

               ^逻辑异或:相同为false,不同为true。

              !逻辑非:非false则true,非true则false。

              特点:偶数个不改变本身。

4.2 代码案例九

package com.itheima_04;

/*

 * 逻辑运算符:用于连接关系表达式。

 * &,|,^,!

 * &&,||

 *

 * 与:& 有false则false

 * 或:| 有true则true

 * 异或:^ 相同则false,不同则true。(男女朋友)

 * 非:! true则false,false则true

 */

public class OperatorDemo {

                public static void main(String[] args) {

                            int a = 10;

                            int b = 20;

                            int c = 30;

                            System.out.println((a > b) & (a > c));// false & false

                            System.out.println((a < b) & (a > c)); // true & false

                            System.out.println((a > b) & (a < c)); // false & true

                            System.out.println((a < b) & (a < c)); // true & true

                            System.out.println("---------------");

                            System.out.println((a > b) | (a > c));// false | false

                            System.out.println((a < b) | (a > c)); // true | false

                            System.out.println((a > b) | (a < c)); // false | true

                            System.out.println((a < b) | (a < c)); // true | true

                            System.out.println("---------------");

                            System.out.println((a > b) ^ (a > c));// false ^ false

                            System.out.println((a < b) ^ (a > c)); // true ^ false

                            System.out.println((a > b) ^ (a < c)); // false ^ true

                            System.out.println((a < b) ^ (a < c)); // true ^ true

                            System.out.println("---------------");

                            System.out.println((a > b)); // false

                            System.out.println(!(a > b)); // !false

                            System.out.println(!!(a > b)); // !!false

              }

}

4.3 逻辑运算符&&与&的区别

       A:&&和&的区别?

              a:最终结果一样。

              b:&&具有短路效果。左边是false,右边不执行。

              &是无论左边是false还是true,右边都会执行

       B:||和|的区别?

              a:最终结果一样       

              b:||具有短路效果.左边是true,右边不执行

              |是无论左边是false还是true,右边都会执行

4.4 代码案例

package com.itheima_04;

/*

 * &&和&的结果一样

 * ||和|的结果一样

 *

 * &&和&的区别:

 * &&如果左边是false,右边不执行。

 * &无论左边是true还是false,右边都会执行。

 */

public class OperatorDemo2 {

                public static void main(String[] args) {

                                int a = 10;

                                int b = 20;

                                int c = 30;

                                System.out.println((a > b) && (a > c));// false && false

                                System.out.println((a < b) && (a > c)); // true && false

                                System.out.println((a > b) && (a < c)); // false && true

                                System.out.println((a < b) && (a < c)); // true && true

                                System.out.println("---------------");

                                System.out.println((a > b) || (a > c));// false || false

                                System.out.println((a < b) || (a > c)); // true || false

                                System.out.println((a > b) || (a < c)); // false || true

                                System.out.println((a < b) || (a < c)); // true || true

                                System.out.println("---------------");

 

                                int x = 3;

                                int y = 4;

                                // System.out.println((x++ > 4) & (y++ > 5)); // false & false

                                System.out.println((x++ > 4) && (y++ > 5)); // false && false

                                System.out.println("x:" + x);

                                System.out.println("y:" + y);

                }

}

5. 三元运算符

5.1 三元运算符概述 

      A:格式

                (关系表达式)?表达式1:表达式2;

               如果条件为true,运算后的结果是表达式1;

               如果条件为false,运算后的结果是表达式2;

      B:示例:

               获取两个数中大数。

               int x=3,y=4,z;

               z = (x>y)?x:y;//z变量存储的就是两个数的大数

5.2 代码案例

package com.itheima_05;

/*

 * 三元运算符:

 * 格式:

 * (关系表达式)?表达式1:表达式2;

 * 执行流程:

 * A:计算关系表达式的值,看是true还是false

 * B:如果是true,表达式1就是运算结果

 * 如果是false,表达式2就是运算结果

 */

public class OperatorDemo {

            public static void main(String[] args) {

                              int a = 10;

                              int b = 20;

                              int c = (a > b) ? a : b;

                              System.out.println("c:" + c);

              }

}

5.3 代码案例​​​​​​​(比较两个数是否相同)

package com.itheima_05;

/*

 * 三元运算符的练习

 * 比较两个整数是否相同

 */

public class OperatorTest {

                public static void main(String[] args) {

                              // 定义两个int类型的变量

                              int a = 10;

                              int b = 20;

                              boolean flag = (a == b) ? true : false;

                               // boolean flag = (a == b);

                              System.out.println(flag);

                 }

}

5.4​​​​​​​ 代码案例十三(获取三个数中的最大值)

package com.itheima_05;

/*

 * 获取三个整数中的最大值

 */

public class OperatorTest2 {

                public static void main(String[] args) {

                                // 定义三个int类型的变量

                               int a = 10;

                               int b = 30;

                               int c = 20;

                                // 先比较两个整数的大值

                               int temp = ((a > b) ? a : b);

                               int max = ((temp > c) ? temp : c);

                                System.out.println("max:" + max);

                }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值