【1基础语法】3-运算符-创新互联

3-运算符
  • 一级目录
    • 二级目录
      • 三级目录
  • 1 算术运算符
    • 1.1 +号
    • 1.2 - * / %
    • 1.3 ++/--
  • 2 赋值运算符
  • 3 关系运算符
  • 4 逻辑运算符
      • 4.1 位逻辑运算符
      • 4.2 短路逻辑运算符
  • 5 位运算符
  • 6条件运算符

创新互联公司-专业网站定制、快速模板网站建设、高性价比东湖网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式东湖网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖东湖地区。费用合理售后完善,十载实体公司更值得信赖。一级目录 二级目录 三级目录 1 算术运算符

+,-,*, / 、% 、++ 、 –

1.1 +号
  1. 正数
  2. 加号
  3. 连接符号
System.out.println(+20); // 表示 正数
System.out.println(3+4); // 两数相加
System.out.println("Hello" + 666);  // 拼接
1.2 - * / %
System.out.println(5-3); // 2
System.out.println(-3);  // -3
System.out.println(5*3); // 15
System.out.println(5/3); // 1
System.out.println(5%3); // 2
System.out.println(2%4); // 2

System.out.println(5/(double)3); // 1.666667
System.out.println((double)5/3); // 1.666667
1.3 ++/–

++ – 属于单目运算

++ 表示自增1

– 表示自减1

单独使用

​ 表示自增或者自减,没有任何的区别

public static void main(String[] args)
{int a = 10;
    int b = 20;
    // a = 10 b = 20
    System.out.println("a = " + a + " b =  " + b);
    //a ++;
    //b --;
    // a = 11 b = 19
    //System.out.println("a = " + a + " b =  " + b);

    ++ a ;
    -- b ;
    // a = 11 b = 19
    System.out.println("a = " + a + " b =  " + b);
}

参与运算

  1. 如果++放在操作数的左边,就表示先自增再参与运算
  2. 如果++放在操作数的右边,就表示先参与运算然后在自增1或者自减1
// ++ -- 参与运算
int a1 = 3;
int a2 = 4;
int result = (a1++)/3 + (--a2)*2 -(a1--)%6 + (a2++)*3 - (a2--);
System.out.println("a1=" + a1 + "  a2="+a2 + " result="+result);

课堂练习:

  1. int x = 3; int res = (x++)%(++x) 请推断res的值,及x此时的值
  2. int n = 5; n=++n + ++n 求n的值
  3. int n = 3; n= ++n + n ++;求n的值
2 赋值运算符

普通的 =

扩展的 += -+ *= /= %=

public static void main(String[] args)
{// 赋值运算符 这个不是==赋值语句
    int a = 10 ; // 表示将常量10赋值给变量a地址所对应的内存区域中

    a += 3; //等价于a = a + 3
    System.out.println(a);

    a -= 3; // 等价于 a = a - 3;
    System.out.println(a);	
}

面试题1: short s1 = 1 ; ? s1 = s1 + 1; 有什么错?

​ short s1 = 1; s1 += 1; 又有什么错?

short s1 = 1;
s1 = s1 + 1; // 报错 需要强制类型转换
s1 += 1; // 不会 += 会帮助我们自动完成强制类型转换

面试题2:如何交换两个数?

int x = 10;
int y = 20; // 互换x和y的值

int c = x;
x = y;
y = c;

解决方案:声明一个中级变量即可

3 关系运算符

>< >=<= != ==

关系运算符得到的结果都是boolean类型的数据(true和false)

public static void main(String[] args)
{int a = 10;
    int b = 20;

    System.out.println(a >b) ; // false
    System.out.println(a< b) ; // true
    System.out.println(a >= b) ; // false
    System.out.println(a<= b) ; // true
    System.out.println(a != b) ; // true
    System.out.println(a == b) ; // false

}
4 逻辑运算符

​ 连接多个boolean类型的表达式

boolean类型的表达式1 boolean类型的表达式2 boolean类型的表达式3 boolean类型的表达式4

4.1 位逻辑运算符

二进制运算

按位与(&):两边都是1才是1,其他都是0(有0为0)

按位或(|):两边都是0才是0,其他都是1(有1为1)

异或(^):两边不同为1,同为0(同0异1)

public static void main(String[] args)
{int a = 10;
    int b = 20;
    // 按位 & 都为true 结果 true
    System.out.println((a >b ) & (a< b)) ; // false &  true = false
    System.out.println((a< b ) & (a >b)) ; // true & false = false
    System.out.println((a< b ) & (a< b)) ; // true & true = true
    System.out.println((a >b ) & (a >b)) ; // false & false = false
    System.out.println("----------------------------");
    // 按位 | 有true 就为true
    System.out.println((a >b ) | (a< b)) ; // false |  true = true
    System.out.println((a< b ) | (a >b)) ; // true | false = true
    System.out.println((a< b ) | (a< b)) ; // true | true = true
    System.out.println((a >b ) | (a >b)) ; // false | false = false
    System.out.println("----------------------------");
    // 按位 异或 相同为false 不同为true
    System.out.println((a >b ) ^ (a< b)) ; // false ^  true = true
    System.out.println((a< b ) ^ (a >b)) ; // true ^ false = true
    System.out.println((a< b ) ^ (a< b)) ; // true ^ true = false
    System.out.println((a >b ) ^ (a >b)) ; // false ^ false = false

}

按位符号也会运用在位运算,位运算操作要比普通运算的效率要高很多

&:有0取0,否则取1
1001 & 0110 = 0
    1 0 0 1
 &  0 1 1 0
 ----------
    0 0 0 0  

|:有1取1,否则取0
1001 | 0110 = 15
    1 0 0 1
 |  0 1 1 0
 ----------
    1 1 1 1 

^:相同为0 不同为1    
1001 ^ 0110 = 15
    1 0 0 1
 ^  0 1 1 0
 ----------
    1 1 1 1
4.2 短路逻辑运算符

&& 短路与

|| 短路或者

! 非

& 表示按位与,无论什么情况都会同时计算运算符两边的表达式

&& 表示短路与,如果前面的表达式为false,那么无论后面的表达式结果如何,都不会去计算后面表达式的值。因为后面表达式的值不会影响结果

同时注意:在实际使用中我们很少使用按位与,更多的是使用短路与

!:取反

​ 当!的个数是奇数个的时候,结果相反

​ 当!的个数是偶数的时候,结果不变

`面试题:& 与 && 的区别

  1. & 表示按位与,无论什么情况都会同时计算运算符两边的表达式
  2. && 表示短路与,如果前面的表达式为false,那么无论后面的表达式结果如何,都不会去计算后面表达式的值。因为后面表达式的值不会影响结果
  3. && 开发中使用,&基本不使用
  4. &常用与位运算操作,效率高
5 位运算符

位运算符:用来计算二进制的运算符

& | ^ ~
有符号移动:<< >>
无符号移动:>>>、<<<
eg:4>>1,结果为2

6条件运算符

条件运算符又称为三目运算

格式: X ? Y : Z ;
X 表达式必须是boolean类型的表达式
计算流程:
     1. 首先计算X的值
     2. 如果X为true,那么整个表达式的结果就是Y的值
     3. 如果X为false,那么整个表达式的结果就是Z的值

【上一篇】:【1基础语法】2-标识符-数据类型及转换

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


文章名称:【1基础语法】3-运算符-创新互联
分享路径:http://hbruida.cn/article/pspgh.html