[零基础学JAVA]Java SE基础部分-03. 运算符和表达式


 转自:http://redking.blog.51cto.com/27212/116751

1、课程名称:运算符、表达式
讲解了JAVA中各种运算符的使用,包括与、或、非、大于、小于等。
2、知识点
2.1、上次课程主要知识点回顾
1、标识符命名:由字母、数字、下划线、$组成,其中不能以数字开头
2、java的数据类型划分:
· 基本数据类型
· 引用数据类型
3、 各种数据类型间的转换问题
2.2、本次课程预计讲解知识点
1、运算符
2、表达式
3、具体内容
本季目标
image
运算符
image
算术运算符
+:表示两个数字相加
-:表示两个数字相减
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);
    }
}
image
image
image
*、/:乘法、除法
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);   
    }
}
image
image
注意点:
程序中如果使用了除法,则被除数不能为“0”
image
image
Char和int之间也是可以相互转换的。
image
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);
    }
}
image
image
%取模操作(取余数)
1/2的话是商为0,余1哈。
image
image
我们看下20/3余2的效果哈。
image
image
++和--操作
image 
· ++表示自增,自己可以增加一个
· -- 表示自减,自己可以减少一个
开发中++有两种情况:++i、i++
· ++i:表示的先自增再进行操作
· i++:表示的是先进行操作再进行自增
第一个i++输出应该为20后再自增,第二个输出的i就已经是第一个i++后的21了哈,第三个语句++i是先进行自增后再操作应该输出22哈,所以输出应该为20、21、22,我们验证下效果哈。
image
image
开发中--操作也有两种:
· --i:先自减,再操作
· i--:先操作,再自减
我们把上面的例子修改下看看效果哈。
image
image 
关系运算符:
返回的值是一个boolean值。完全可以使用一个boolean值去接收返回的内容。
我们来测试下哈:
image
image
public class Demo03
{
    public static void main(String args[])
    {
        int i=10;
        int j=20;
        System.out.println(i>j);
    }
};
image
image
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中“==”就表示判断两个数相等,如果是一个“=”表示的是赋值操作语句。
布尔逻辑运算:
· !:表示非,表示与实际值相反。
我们修改下上面的例子哈:
image
image
输入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。
image
image
显示false,为什么哈?false & true = false哈.
 image
image 以前我们说过,任何数都不能除以0,否则程序会出错,我们看下效果哈.
image
· true = 1;false = 0
|- “&&”称为短路与,是与判断语句有关的。
只要第一个条件是false,则以后永远是false,后面的条件不再判断了。
我们修改下上面的例子哈.加个&&看看效果.
image 
image
public class Demo06
{
    public static void main(String args[])
    {
        /*
        if(布尔值){
            //如果值为true,则此处代码执行
        }
        */
        if (1/1!=1&&1/0==0)
        {
            System.out.println("条件满足");
        }
    }
};
没看到出错信息哈,因为加了“&&”短路与后,image 这个条件已经为false了,则以后永远是false,所以后面的条件不再判断了。
我们看下条件为true时的效果哈.
image
image
· 或操作(||、|)
true || true = true
true || false = true
false || false = false
false || true = true ;
只要有一个是true,则其他的永远是true
短路或:只要第一个条件为真了,则以后的条件都不用判断了。
image
第一个为true哈,应该显示true,我们看下效果.
image
我们来比较下||和|区别哈.
image
我们先看下||短路或,1/1==1为true,执行下面的语句显示51cto.blog哈。
image
显示正常哈。
那我们改成|非短路或呢?我们看下效果哈。
image
image
在判断第二个条件时出错了哈。
在代码开发中比较常用的就是“||”、“&&”。
位运算符
这在开发中不大常用哈.
赋值运算符=
这个应该非常熟悉了哈.
扩展赋值运算符
image
+=
image
image
-=
image
image
*=
image
image
/=
image
image
10/20为什么是0,不是0.5哈,我们说过这是因为整型变量损失精度的原因哈。我们要输出0.5的值,就要指定i为一个float变量类型。
image
image
字符串连接运算符
image
字符串的连接操作:
程序中如果使用“"”括起来的代码称为字符串。字符串的连接使用“+”
image
看下效果哈
image
注意:任何数据类型如果遇到了字符串,则肯定全部转换为字符串类型。
这句话我们验证下哈:
image
看到没,i和j全部转换成字符串类型输出了哈。
image
运算符优先级
image
我们可以使用()改变优先级
image
image 
表达式
image
三目运算符
image
本季重点
Java运算符及表达式
public class BasicDataTypeTest{

    public static void main(String args[]){

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

        char a ,b ;
        a = 'a';
        b = 'b';
        int c = 6;
//        c = c + a;
        int d = b + c;
        char tmp ;
        tmp = (char )d ;
        int e = d - c ;
        tmp = (char) e;

        System.out.println(a+b);
        System.out.println(d);
        System.out.println(e);


        if(1/1==1||1/0==1)
            System.out.println("true");

        if(1/1!=1&&1/0==1)
            System.out.println("false");
/*
        if(1/1==1|1/0==1)
            System.out.println("true");

        if(1/1!=1&1/0 ==1)
            System.out.println("false");
*/


        boolean t,f;

        t =true ;
        f = false;
        boolean is ;
        is = t&&f;

        float fl = 12.3f;

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

    }
}
原文地址:https://www.cnblogs.com/zhangsf/p/3326511.html