Java篇三——运算符

写在前面:本人是借助两本参考书自学的,其中部分例子和语句均是来自参考书。第一本:《Java 编程指南》,[美] Budi Kurniawan 著,闫斌 贺莲 译。第二本:《第一行代码 Java 视频讲解版》,李兴华 马云涛 著

x = z + 10;
据我有限的计算机知识(其实完全来自于大三学的微机原理,大一学的VB嘛。。。忘完了),x 和 z 为操作数,“+”为运算符,“=”是赋值语言?有的运算符只需要一个操作数(即一元运算符),有的运算符需要两个操作数等等。


先列出运算符:

=、>、<、!、~、?、:、
==、<=、>=、!=、&&、||、++、- -、
+、-、乘*、/、&、|、^、%、<<、>>、>>>
+=、- =、*=、/=、&=、|=、^=、%=、<<=、>>=、>>>=


java 中一共六类运算符

  1. 一元运算符
  2. 算术运算符
  3. 关系和条件运算符
  4. 位移和逻辑运算符
  5. 赋值运算符
  6. 其他运算符

下面以程序解释各类运算符

来自个人文件 firstestsix.java

public class firstetsix {
	public static void main (String[] args) {
	
//一元运算符
    // 一元减法运算符 “ - ”
	  double x = 7.7;
	  double y = -x;    //  一元减法运算符“-”用来取负值
	  System.out.println(y);  //输出结果为-7.7
    //递增运算符 “ ++ ”(三种情况)
      //第一种:递增
	  int z = 4;
      ++z;  //  “++”运算符将操作数增1
      System.out.println(z); //输出结果为5 
      z++;
      System.out.println(z); //输出结果为6
      //第二种:后缀递增
      int c1 = 7;
      int d1 = c1++;  //  “+”在操作数c1后,先赋值给d1,后递增c1
      System.out.print("c1="+c1);  
      System.out.println(",d1="+d1);  //  输出为 c1=8,d1=7
      //第三种:前缀递增
      int c2 = 7;
      int d2 = ++c2;  //  “+”在操作数c2前,先递增c2,后赋值给d2
      System.out.print("c2="+c2);
      System.out.println(",d2="+d2);  //输出为 c2=8,d2=8
    //  递减运算符 “ -- ”(三种情况,第一种类比递增第一种)
      //第二种:前缀递减
      int e1 = 5;
      int f1 = --e1;  // “-”在操作数e1前,先递减e1,后赋值给f1
      System.out.print("e1="+e1);
      System.out.println(",f1="+f1);  //输出结果为 e1=4,f1=4
      //第三种:后缀递减
      int e2 = 5;
      int f2 = e2--;   //  “-”在操作数e2后,先赋值给f2,后递减e2
      System.out.print("e2="+e2);
      System.out.println(",f2="+f2);  //  输出结果为  f2=5,e2=4
    //求补运算符 “ ! ”
      //该运算符只适用于boolean 数据类型,若操作数为true,则返回值为false;若操作数为false,则返回值为true
      boolean a = false;
      boolean b = !a;
      System.out.print("a="+a);
      System.out.println(",b="+b);  //  输出结果为a=false,b=true
    //按位求补运算符 “ ~ ”
      //该运算符的操作数必须是整数类型,结果是操作数的按位补数
      int m1 = 2;  // 2 的二进制形式是:0000 0000 0000 0000 0000 0000 0000 0010
      int m2 = ~m1;  //按位求补后为 : 1111 1111 1111 1111 1111 1111 1111 1101,这是-3的整数表示法
      System.out.print("m1="+m1);
      System.out.println(",m2="+m2);    //  输出结果为 m1=2,m2=-3
      
//算术运算符
    //加 “ + ”、减 ” - "、乘 “ * ”、除 “ / ”、取模 “ % ”
      byte s1 = 2;
      int s2 = s1 + 7;  
      int j1 = 7;
      int j2 =  j1 - 3;
      int s3 = 3;
      int s4 = s3 * 4;
      System.out.print("s2="+s2);  //结果为 s2 = 9,要注意不能超出数据类型表示的范围
      System.out.print(",j2="+j2);  //结果为 j2 = 4,要注意不能超出数据类型表示的范围
      System.out.println(",s4="+s4);  //结果为 s4 = 12,要注意不能超出数据类型表示的范围
      int  j3 = 13;
      int j4 = j3 / 3;
      int j5 = j3 % 3;
      System.out.print("j4="+j4);  //结果为 j4 = 4,用 / 运算符得出的结果始终是整数,如果被除数不能被整出,则忽略余数
      System.out.println(",j5="+j5);  //结果为 j5 = 1,%运算符是将两个操作数相除然后返回余数,左边操作数是除数,右边操作数是被除数
      
//相等运算符 “ == ”、不等运算符 “ != ”,这两种运算符的操作数可以是整数、浮点数、字符或者boolean,返回值为boolean型
      int h1 = 5;
      int h2 = 5;
      boolean h3 = h1==h2;
      boolean h4 = true;
      boolean h5 = true;
      boolean h6 = h4 != h5;
      System.out.print("h3="+h3); 
      System.out.println(",h6="+h6);   // 输出结果为:h3=true,h6=false
      
//关系运算符 “ < ”、“ > ”、“ <= ”、“ >= ”,这四种运算符的操作数必须是可以转成数字类型的,返回值为boolean
      boolean i1 = 9 < 6;
      boolean i2 = 9 >= 9;
      System.out.print("i1="+i1);
      System.out.println(",i2="+i2);  // 输出结果为 i1=false,i2=true
      
//条件运算符:AND运算符“ && ”、OR运算符“ || ”、三目运算符“ ?:”
      // &&、||这两种运算符的两个操作数为表达式,且必须是返回值为boolean类型的表达式
      boolean k1 = (5 > 3) && (7 > 9);  // 和,一假即假
      boolean k2 = (5 > 3) && (7 < 9);  //和,全真即真
      boolean k3 = (5 < 3) || ( 7 < 9 );  //或,一真即真
      boolean k4 = (5 < 3) || (7 > 9);  //或,全假即假
      System.out.print("k1="+k1);System.out.print(",k2="+k2);System.out.print(",k3="+k3);System.out.println(",k4="+k4);
      //输出结果为:k1=false,k2=true,k3=true,k4=false
      
      // ?:该运算符需要三个操作数表达为,“ 第一个操作数?第二个操作数:第三个操作数 ”
      boolean n1 = ( 8 < 4 ) ? true : false;  
        //第一个操作数必须是返回值为boolean类型的操作数,若为true,则返回第二个操作数,若为false,返回第三个操作数     
      int n2 = (8 < 4 ) ? 3 : 7;  
      System.out.print("n1="+n1);System.out.println(",n2="+n2);  //输出结果为:n1=false,n2=7
      
//移位运算符 ,左移“ << ”、右移“ >> ”、无符号右移“ >>> ”,这部分我还没看懂。。。不想看了

//&、|、^
      //&需要两个操作数,当操作数类型为数字时,进行按位与计算,当操作数类型为boolean时,进行逻辑与计算;|和^类似,进行或运算和异或运算
      int r1 = 5 | 2;  // 0101 (5) | 0010 (2) = 0111 (7)
      int r2 = 5 & 6; // 0101 (5) & 0110  (6) = 0100 (4) 
      boolean r3 = true ^ false;
      System.out.print("r1="+r1); //输出结果为 :r1=7
      System.out.print(",r2="+r2); // 输出结果为:r2=4
      System.out.println(",r3="+r3); // 输出结果为:r3=true
      
//赋值运算符 “ = ”、“ += ”、“ -= ”、“ *= ”、“ /= ”、“ %= ”、“ <<= ”、“ >>= ”、“ &= ”、“ ^= ”、“ |= ”
      int p1 = 5;
      p1 += 7;  //等同于p = p + 7;
      p1 <<= 5;
      System.out.print("p1="+p1);  //  结果为p1=384
      int p2 = 5;
      p2 &= 6;
      System.out.println(",p2="+p2); // p2=4
	}
}
以下是该代码的运算结果
-7.7
5
6
c1=8,d1=7
c2=8,d2=8
e1=4,f1=4
e2=4,f2=5
a=false,b=true
m1=2,m2=-3
s2=9,j2=4,s4=12
j4=4,j5=1
h3=true,h6=false
i1=false,i2=true
k1=false,k2=true,k3=true,k4=false
n1=false,n2=7
r1=7,r2=4,r3=true
p1=384,p2=4
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值