1、课程名称:运算符、表达式
讲解了JAVA中各种运算符的使用,包括与、或、非、大于、小于等。
2、知识点
2.1、上次课程主要知识点回顾
1、标识符命名:由字母、数字、下划线、$组成,其中不能以数字开头
2、java的数据类型划分:
· 基本数据类型
· 引用数据类型
3、 各种数据类型间的转换问题
2.2、本次课程预计讲解知识点
1、运算符
2、表达式
3、具体内容
本季目标
[零基础学JAVA]Java SE基础部分-03. 运算符和表达式_零基础学JAVA
运算符
[零基础学JAVA]Java SE基础部分-03. 运算符和表达式_表达式_02
算术运算符
+:表示两个数字相加
-:表示两个数字相减
Demo01:
public class Demo01
{
    public static void main(String arg[])
    {
        int i=3;
        int j=5;
        i=i+j; 
        //i+j==>i
        System.out.println(i);
        float f1=9.5f;
        float f2=2.5f;
        System.out.println(f1-f2);
    }
}
[零基础学JAVA]Java SE基础部分-03. 运算符和表达式_运算符_03
[零基础学JAVA]Java SE基础部分-03. 运算符和表达式_表达式_04
[零基础学JAVA]Java SE基础部分-03. 运算符和表达式_休闲_05
*、/:乘法、除法
Demo02:
public class Demo02
{
    public static void main(String args[])
    {
        int i = 30;
        int j = 3;
        System.out.println(i*j);
        System.out.println(i/j);   
    }
}
[零基础学JAVA]Java SE基础部分-03. 运算符和表达式_运算符_06
[零基础学JAVA]Java SE基础部分-03. 运算符和表达式_休闲_07
注意点:
程序中如果使用了除法,则被除数不能为“0”
[零基础学JAVA]Java SE基础部分-03. 运算符和表达式_表达式_08
[零基础学JAVA]Java SE基础部分-03. 运算符和表达式_表达式_09
Char和int之间也是可以相互转换的。
[零基础学JAVA]Java SE基础部分-03. 运算符和表达式_运算符_10
Demo02:
public class Demo02
{
    public static void main(String args[])
    {
        char i = 'A';
        int j = 10;
        j = i + j;
        i = (char)j;
        System.out.println(i);
    }
}
[零基础学JAVA]Java SE基础部分-03. 运算符和表达式_运算符_11
[零基础学JAVA]Java SE基础部分-03. 运算符和表达式_零基础学JAVA_12
%取模操作(取余数)
1/2的话是商为0,余1哈。
[零基础学JAVA]Java SE基础部分-03. 运算符和表达式_java_13
[零基础学JAVA]Java SE基础部分-03. 运算符和表达式_java_14
我们看下20/3余2的效果哈。
[零基础学JAVA]Java SE基础部分-03. 运算符和表达式_java_15
[零基础学JAVA]Java SE基础部分-03. 运算符和表达式_运算符_16
++和--操作
[零基础学JAVA]Java SE基础部分-03. 运算符和表达式_表达式_17 
· ++表示自增,自己可以增加一个
· -- 表示自减,自己可以减少一个
开发中++有两种情况:++i、i++
· ++i:表示的先自增再进行操作
· i++:表示的是先进行操作再进行自增
第一个i++输出应该为20后再自增,第二个输出的i就已经是第一个i++后的21了哈,第三个语句++i是先进行自增后再操作应该输出22哈,所以输出应该为20、21、22,我们验证下效果哈。
[零基础学JAVA]Java SE基础部分-03. 运算符和表达式_休闲_18
[零基础学JAVA]Java SE基础部分-03. 运算符和表达式_表达式_19
开发中--操作也有两种:
· --i:先自减,再操作
· i--:先操作,再自减
我们把上面的例子修改下看看效果哈。
[零基础学JAVA]Java SE基础部分-03. 运算符和表达式_零基础学JAVA_20
[零基础学JAVA]Java SE基础部分-03. 运算符和表达式_表达式_21 
关系运算符:
返回的值是一个boolean值。完全可以使用一个boolean值去接收返回的内容。
我们来测试下哈:
[零基础学JAVA]Java SE基础部分-03. 运算符和表达式_休闲_22
[零基础学JAVA]Java SE基础部分-03. 运算符和表达式_休闲_23
public class Demo03
{
    public static void main(String args[])
    {
        int i=10;
        int j=20;
        System.out.println(i>j);
    }
};
[零基础学JAVA]Java SE基础部分-03. 运算符和表达式_运算符_24
[零基础学JAVA]Java SE基础部分-03. 运算符和表达式_表达式_25
public class Demo03
{
    public static void main(String args[])
    {
        int i=10;
        int j=20;
        boolean b=i>j;
        System.out.println(b);
    }
};
b输出了false,证明完全可以使用一个boolean值去接收返回的内容。
注意点:
在java中“==”就表示判断两个数相等,如果是一个“=”表示的是赋值操作语句。
布尔逻辑运算:
· !:表示非,表示与实际值相反。
我们修改下上面的例子哈:
[零基础学JAVA]Java SE基础部分-03. 运算符和表达式_零基础学JAVA_26
[零基础学JAVA]Java SE基础部分-03. 运算符和表达式_零基础学JAVA_27
输入b的值相反true哈.
public class Demo04
{
    public static void main(String args[])
    {
        int i=10;
        int j=20;
        boolean b=i>j;
        System.out.println(!b);
    }
};
· 与操作(&&、&)
true & true = true
true & false = false
false & false = false
false & true = false
只要在相与的一端有一个是false,则结果都为false。
[零基础学JAVA]Java SE基础部分-03. 运算符和表达式_表达式_28
[零基础学JAVA]Java SE基础部分-03. 运算符和表达式_零基础学JAVA_29
显示false,为什么哈?false & true = false哈.
 [零基础学JAVA]Java SE基础部分-03. 运算符和表达式_零基础学JAVA_30
[零基础学JAVA]Java SE基础部分-03. 运算符和表达式_零基础学JAVA_31 以前我们说过,任何数都不能除以0,否则程序会出错,我们看下效果哈.
[零基础学JAVA]Java SE基础部分-03. 运算符和表达式_运算符_32
· true = 1;false = 0
|- “&&”称为短路与,是与判断语句有关的。
只要第一个条件是false,则以后永远是false,后面的条件不再判断了。
我们修改下上面的例子哈.加个&&看看效果.
[零基础学JAVA]Java SE基础部分-03. 运算符和表达式_表达式_33 
[零基础学JAVA]Java SE基础部分-03. 运算符和表达式_运算符_34
public class Demo06
{
    public static void main(String args[])
    {
        /*
        if(布尔值){
            //如果值为true,则此处代码执行
        }
        */
        if (1/1!=1&&1/0==0)
        {
            System.out.println("条件满足");
        }
    }
};
没看到出错信息哈,因为加了“&&”短路与后,[零基础学JAVA]Java SE基础部分-03. 运算符和表达式_表达式_35 这个条件已经为false了,则以后永远是false,所以后面的条件不再判断了。
我们看下条件为true时的效果哈.
[零基础学JAVA]Java SE基础部分-03. 运算符和表达式_运算符_36
[零基础学JAVA]Java SE基础部分-03. 运算符和表达式_表达式_37
· 或操作(||、|)
true || true = true
true || false = true
false || false = false
false || true = true ;
只要有一个是true,则其他的永远是true
短路或:只要第一个条件为真了,则以后的条件都不用判断了。
[零基础学JAVA]Java SE基础部分-03. 运算符和表达式_休闲_38
第一个为true哈,应该显示true,我们看下效果.
[零基础学JAVA]Java SE基础部分-03. 运算符和表达式_表达式_39
我们来比较下||和|区别哈.
[零基础学JAVA]Java SE基础部分-03. 运算符和表达式_零基础学JAVA_40
我们先看下||短路或,1/1==1为true,执行下面的语句显示51cto.blog哈。
[零基础学JAVA]Java SE基础部分-03. 运算符和表达式_java_41
显示正常哈。
那我们改成|非短路或呢?我们看下效果哈。
[零基础学JAVA]Java SE基础部分-03. 运算符和表达式_运算符_42
[零基础学JAVA]Java SE基础部分-03. 运算符和表达式_表达式_43
在判断第二个条件时出错了哈。
在代码开发中比较常用的就是“||”、“&&”。
位运算符
这在开发中不大常用哈.
赋值运算符=
这个应该非常熟悉了哈.
扩展赋值运算符
[零基础学JAVA]Java SE基础部分-03. 运算符和表达式_运算符_44
+=
[零基础学JAVA]Java SE基础部分-03. 运算符和表达式_运算符_45
[零基础学JAVA]Java SE基础部分-03. 运算符和表达式_休闲_46
-=
[零基础学JAVA]Java SE基础部分-03. 运算符和表达式_java_47
[零基础学JAVA]Java SE基础部分-03. 运算符和表达式_休闲_48
*=
[零基础学JAVA]Java SE基础部分-03. 运算符和表达式_java_49
[零基础学JAVA]Java SE基础部分-03. 运算符和表达式_运算符_50
/=
[零基础学JAVA]Java SE基础部分-03. 运算符和表达式_表达式_51
[零基础学JAVA]Java SE基础部分-03. 运算符和表达式_java_52
10/20为什么是0,不是0.5哈,我们说过这是因为整型变量损失精度的原因哈。我们要输出0.5的值,就要指定i为一个float变量类型。
[零基础学JAVA]Java SE基础部分-03. 运算符和表达式_休闲_53
[零基础学JAVA]Java SE基础部分-03. 运算符和表达式_运算符_54
字符串连接运算符
[零基础学JAVA]Java SE基础部分-03. 运算符和表达式_运算符_55
字符串的连接操作:
程序中如果使用“"”括起来的代码称为字符串。字符串的连接使用“+”
[零基础学JAVA]Java SE基础部分-03. 运算符和表达式_零基础学JAVA_56
看下效果哈
[零基础学JAVA]Java SE基础部分-03. 运算符和表达式_休闲_57
注意:任何数据类型如果遇到了字符串,则肯定全部转换为字符串类型。
这句话我们验证下哈:
[零基础学JAVA]Java SE基础部分-03. 运算符和表达式_运算符_58
看到没,i和j全部转换成字符串类型输出了哈。
[零基础学JAVA]Java SE基础部分-03. 运算符和表达式_表达式_59
运算符优先级
[零基础学JAVA]Java SE基础部分-03. 运算符和表达式_java_60
我们可以使用()改变优先级
[零基础学JAVA]Java SE基础部分-03. 运算符和表达式_java_61
[零基础学JAVA]Java SE基础部分-03. 运算符和表达式_表达式_62 
表达式
[零基础学JAVA]Java SE基础部分-03. 运算符和表达式_休闲_63
三目运算符
[零基础学JAVA]Java SE基础部分-03. 运算符和表达式_表达式_64
本季重点
Java运算符及表达式