运算符

2.1 算数运算符

Java中,整数使用以上运算符,无论怎么计算,也不会得到小数。

 

++ 运算,变量自己增长1。反之, -- 运算,变量自己减少1,用法与 ++ 一致。

 

独立运算:

变量在独立运算时, 前++ 和 后++ 没有区别 。变量 前++ :例如 ++i 。
变量 后++ :例如 i++ 。

 

混合运算:

和其他变量放在一起, 前++ 和 后++ 就产生了不同。

  • 变量 后++ :变量a先把自己的值1,赋值给变量b,此时变量b的值就是1,变量a自己再加1。a的结果是2,b的结果是1。
public static void main(String[] args) {
    int a = 1;
    int b = ++a;
    System.out.println(a);//计算结果是2  
    System.out.println(b);//计算结果是2
}
  • 变量 前++ :变量a自己加1,将加1后的结果赋值给b,也就是说a先计算。a和b的结果都是2。
public static void main(String[] args) {
    int a = 1;
    int b = a++;
    System.out.println(a);//计算结果是2  
    System.out.println(b);//计算结果是1
}

 

+ 符号在字符串中的操作:+ 符号在遇到字符串的时候,表示连接、拼接的含义。 "a"+"b"的结果是“ab”,连接含义

public static void main(String[] args){
   String a = "hello";
   int b = 100;
   System.out.println(a+b);//输出的结果是 hello100   }

  

2.2 赋值运算符  

 

 赋值运算符,就是将符号右边的值,赋给左边的变量。

public static void main(String[] args){
    int i = 5;
    i+=5;//计算方式 i=i+5 变量i先加5,再赋值变量i  
    System.out.println(i); //输出结果是10 
}    

  

 2.3 比较运算符

 

比较运算符,是两个数据之间进行比较的运算,运算结果都是布尔值 true 或者 false 。

 

 

public static void main(String[] args) {
    System.out.println(1==1);//true  
    System.out.println(1<2);//true  
    System.out.println(3>4);//false  
    System.out.println(3<=4);//true  
    System.out.println(3>=4);//false  
    System.out.println(3!=4);//true
}

  

 2.4 逻辑运算符

逻辑运算符,是用来连接两个布尔类型结果的运算符,运算结果都是布尔值 true 或者 false

 

 public static void main(String[] args)  {
     System.out.println(true && true);//true
     System.out.println(true && false);//false
     System.out.println(false && true);//false,右边不计算
     System.out.println(false || false);//falase
     System.out.println(false || true);//true
     System.out.println(true || false);//true,右边不计算
     System.out.println(!false);//true
 }

  

2.5 三元运算符 

三元运算符格式: 数据类型 变量名 = 布尔类型表达式?结果1:结果2

 三元运算符计算方式:

  •  布尔类型表达式结果是true,三元运算符整体结果为结果1,结果1赋值给变量。
  • 布尔类型表达式结果是false,三元运算符整体结果为结果2,结果2赋值给变量。
public static void main(String[] args) {
    int i = (1==2 ? 100 : 200);  
    System.out.println(i);//200  
    int j = (3<=4 ? 500 : 600);  
    System.out.println(j);//500
}

 

 

扩展知识点

+=等这类赋值运算符带有强制转换的特点

下面的程序有问题吗?

public static void main(String[] args){
    short s = 1;
    s+=1;
    System.out.println(s);
}

分析:

s += 1 逻辑上看作是 s = s + 1 计算结果被提升为int类型,再向short类型赋值时发生错误,因为不能将取值范围大的类型赋值到取值范围小的类型。但是, s=s+1进行两次运算 , += 是一个运算符,只运算一次,并带有强制转换的特点,也就是说 s += 1 就是 s = (short)(s + 1) ,因此程序没有问题编译通过,运行结果是2.  

 

posted @ 2019-01-03 21:41  竹子の云  阅读(121)  评论(0)    收藏  举报