1.1 算数运算符 • 运算符 对常量和变量进行操作的符号称为运算符 • 表达式 用运算符把常量或者变量连接起来符号java语法的式子就可以称为表达式。不同运算符连接的式子体现的是不同类型的表达式。 定义两个int类型的变量a,b,做加法(a + b) • 常用运算符 算术运算符 赋值运算符 关系运算符 逻辑运算符 三元运算符 1.1.1 算数运算符的基本用法 1.1.2 算数运算符概述 A:什么是运算符 就是对常量和变量进行操作的符号。 B:算数运算符有哪些 * +,-,*,/,%,++,-- 1.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.1.4 算数运算符取余和除法的区别 %:取余运算符。得到的是两个相除数据的余数。 /:除法运算符。得到是两个相除数据的商。 使用场景: %:判断两个数据是否整除。 1.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.1.6字符和字符串参与加法操作 字符参与运算 其实是拿该字符对应的数值来操作 ‘a’ 97 ‘A’ 65 ‘0’ 48 字符串参与运算 这里其实做的不是加法运算,而是字符串拼接。 字符串和其他类型的数据做拼接,结果是字符串类型的。 1.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.1.8 算数运算符++和- - 的用法
++,--运算符:对变量做加1或者减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.1 赋值运算符
2.1.1 赋值运算符分类
基本的赋值运算符:=
扩展的赋值运算符:+=,-=,*=,/=,%=
+=:        a+=20;相当于a = (a的数据类型)(a + 20);
2.1.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.1 关系运算符 3.1.1 基本使用及注意事项 关系运算符包含以下内容: ==,!=,>,>=,<,<= 关系运算符的结果都是boolean型,也就是要么是true,要么是false。 注意事项: 关系运算符“==”不能误写成“=”。 代码案例八

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.1 逻辑运算符 4.1.1 逻辑运算符概述 A:逻辑运算符有哪些 &,|,^,! &&,|| B:案例演示 逻辑运算符的基本用法

C:注意事项: a:逻辑运算符一般用于连接boolean类型的表达式或者值。 b:表达式:就是用运算符把常量或者变量连接起来的符合java语法的式子。 算术表达式:a + b 比较表达式:a == b(条件表达式) D:结论: &逻辑与:有false则false。 |逻辑或:有true则true。 ^逻辑异或:相同为false,不同为true。 !逻辑非:非false则true,非true则false。 特点:偶数个不改变本身。 4.1.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.1.3 逻辑运算符&&与&的区别 A:&&和&的区别? a:最终结果一样。 b:&&具有短路效果。左边是false,右边不执行。 &是无论左边是false还是true,右边都会执行 B:||和|的区别? a:最终结果一样 b:||具有短路效果.左边是true,右边不执行 |是无论左边是false还是true,右边都会执行 4.1.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.1 三元运算符 5.1.1 三元运算符概述 A:格式 (关系表达式)?表达式1:表达式2; 如果条件为true,运算后的结果是表达式1; 如果条件为false,运算后的结果是表达式2; B:示例: 获取两个数中大数。 int x=3,y=4,z; z = (x>y)?x:y;//z变量存储的就是两个数的大数 5.1.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.1.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.1.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);
        }
}