第4节运算符(上)

算数运算符

  运算符和表达式

  运算符:对常量或者变量进行操作的符号

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

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

  举例说明:

    int a=10;

    int b=20;

    int c=a+b;

    + 是运算符,并且是算术运算符

    a+b :是表达式,由于+是算术运算符,所以这个表达式叫算术表达式

 

    算术运算符

      符号  作用

      +    加

      -     减

      *     乘

      /      除

      %      取余  获取的是两个数据做除法的余数

  

public class OperatorDemo01{
    public static void main(String[] args){
        //定义两个变量
        int a=6;
        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(a%b);
        //除法得到的是商,取余得到小数,必须有浮点数的参与
        
        //整数相除只能得到整数,要想得到小数,必须有浮点数的参与
        System.out.println(6.0/4);
    }
}

注意事项:

  /和我%的区别:两个数据做除法,/取结果的%取结果的余数

  整数操作只能得到整数,要想得到小数,必须有浮点数参与运算。

 

字符的“+”操作

  

/*
    字符的"+"操作
*/
public class OperatorDemo02{
    public static void main(String[] args){
        //定义两个变量
        int i=10;
        char c='A';//'A'的值是65
        char c1='a';//'a'的值是97
        char c2='0';//'0'的值是48
        
        System.out.println(i+c);//结果75;
        System.out.println(i+c1);//结果107;
        System.out.println(i+c2);//结果58;
    }
}

  拿字符在计算机底层对应的数值来进行计算的

  'A'=65  A-Z是连续的

  'a'=97  a-z是连续的

  '0'=48  0-9是连续的

  算术表达式中包含多个基本数据类型的值的时候,整个算术表达式的类型自动进行提升

  提升规则:

  byte类型,short类型和char类型将被提升到int类型

  整个表达式的类型自动提升到表达式中最高等级操作数同样的类型

  等级顺序:byte,shoit,char->int->long->float->double

        //char ch=i+c;
        //char类型会被自动提升为int类型
        int j=i+c;
        System.out.println(j);
        
        //int k=10+13.14;
        double d=10+13.14;

 

字符串的“+”操作

/*
    字符串的“+”操作
*/
public class OperatorDemo03{
    public static void main(String[] args){
        System.out.println("it"+"heima");//运行结果itheima
        System.out.println("it"+666);//运行结果it666
        System.out.println(666+"it");//运行结果666it
        System.out.println("it"+6+66);//运行结果it666
        System.out.println(1+99+"年屌丝");//运行结果100年屌丝
    }
}

  当“+“操作中出现字符串时,这个”+“是字符串连接符,而不是算术运算符。

  “itheima”+666

  在“+”操作中,如果出现了字符串,就是连接运算符,否则就是算术运算。当连续进行

  1+99+“年屌丝”

 

赋值运算符

  =  赋值  a=10,将10赋值给变量a;

/*
    赋值运算符
*/
public class OperatorDemo04{
    public static void main(String[] args){
        //把10赋值给int类型的变量i
        int i=10;
        System.out.println("i:"+i);
        
        //+= 把左边和右边的数据做加法操作,结果赋值给左边
        i+=20;
        //i=i+20;
        System.out.println("i:"+i);
        
        //注意:扩展的赋值运算符底层隐含了强制类型转换
        short s=10;
        s+=20;
        //s=s+20;//报错!错误原因看表达式的类型提升
        //s=(short)(s+20);
        System.out.println("s:"+s);
    }
}

  +=  加后赋值    a+=b,将a+b的值给a

  -=  减后赋值    a-=b,将a-b的值给a

  *=  乘后赋值    a*=b,将a*b的值给a

  /=  除后赋值    a/=b,将a/b的值给a

  %=  取余后赋值    a%=b,将a/b的余数给a

  注意事项:

    扩展的赋值运算符隐含了强制类型转换

 

自增自减运算符

  ++  自增  变量的值加1

  --    自减  变量的值减1

/*
    自增自减运算符
*/
public class OperatorDemo05{
    public static void main(String[] args){
        //定义变量
        int i=10;
        System.out.println("i:"+i);
        
        //单独使用
        //i++;
        //++i;
        System.out.println("i:"+i);
    
        //参与操作使用
        //int j=i++;//运行结果i=11,j=10;
        int j=++i;//运行结果i=11,j=11;
        System.out.println("i:"+i);
        System.out.println("j:"+j);
    }
}

  注意事项:

  ++和--既可以放在变量的后边,也可以放在变量的前边。

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

  参与操作的时候,如果放在变量的后边,先拿变量参与操作,后拿变量做++或者--。

  参与操作的时候,如果放在变量的前边,先拿变量做++或者--,后拿变量参与操作。

  最常见的用法:单独使用

 

关系运算符

  ==  a==b,判断a和b的值是否相等,成立为true,不成立为false

  !=  a!=b,判断a和b的值是否不相等,成立为true,不成立为false

  >  a>b,判断a是否大于b,成立为true,不成立为false

  >=  a>=b,判断a是否大于等于b,成立为true,不成立为false

  <  a<b,判断a是否小于b,成立为true,不成立为false

  <=  a<=b,判断a是否小于等于b,成立为true,不成立为false

  

public class OperatorDemo06{
    public static void main(String[] args){
        //定义变量
        int i=10;
        int j=20;
        int k=10;
        
        //==
        System.out.println(i==j);
        System.out.println(i==k);
        System.out.println("---------");
        
        //!=
        System.out.println(i!=j);
        System.out.println(i!=k);
        System.out.println("---------");
        
        //>
        System.out.println(i>j);
        System.out.println(i>k);
        System.out.println("---------");
        
        //>=
        System.out.println(i>=j);
        System.out.println(i>=k);
        System.out.println("---------");
        
        //不小心把==写成了=
        //把j的值赋值给了i,然后输出i的值
        System.out.println(i=j);
    }
}

  注意事项:

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

  千万不要把“==”误写成“=”。

  

posted @ 2021-01-16 21:30  Testtext  阅读(129)  评论(0)    收藏  举报