zoukankan      html  css  js  c++  java
  • Java基本语法--运算符

    运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等。本篇博客详细介绍Java基本语法中的运算符,主要包括算术运算符、赋值运算符、比较运算符(关系运算符)、逻辑运算符、位运算符、三元运算符。


    Java基本语法--运算符

    算术运算符

    算术运算符

    ♫♬♭♩♪:

    ♫ 如果对负数取模,可以把模数负号忽略不记,如:5 % (-2) = 1。 但被模数是
    负数则不可忽略。取余的结果符号与被模数的符号相同。此外,取模运算的结果不一定总是整数。

    ♪ 对于除号“/”,它的整数除和小数除是有区别的:整数之间做除法时,结果只
    保留整数部分而舍弃小数部分。如:12 / 5 * 5 = 10;

    ♬ “+”字符串相加功能外时需格外注意顺序,字符串与非字符串相“+”时结果还是一个字符串。如:System.out.println(“10 + 1 = ” + 10 + 1);结果为:10 + 1 = 101。

    练习:

    随意给出一个三位整数,打印显示它的个位数,十位数,百位数的值。

    例如:数字621输出结果为:

    百位数:6

    十位数:2

    个位数 :1

    public class getNumber {
    	public static void main(String[] args) {
    		int number = 621;
    		int hundred = number / 100;
    		int decade = number % 100 / 10;
    		int bits = number % 10;
    		System.out.println(number + "的百位是:" + hundred);
    		System.out.println(number + "的十位是:" + decade);
    		System.out.println(number + "的个位是:" + bits);
    	}
    }
    


    赋值运算符

    * **符号:=**

    ➠ 当“=”两侧数据类型不一致时,可以使用自动类型转换或使用强制
    类型转换原则进行处理

    ➠ 支持连续赋值

    • 扩展赋值运算符: +=, -=, *=, /=, %=

      ➠ num += a;相当于num = num + a;

      ➠ num -= a;相当于num = num - a;

      ➠ num *= a;相当于num = num * a;

      ➠ num /= a;相当于num = num / a;

      ➠ num %= a;相当于num = num % a;

      ➠ 使用扩展赋值运算不会改变数字的性质

    //声明变量时赋值
    int i1 = 10;
    int j1 = 10;
    int i2 = 20,j2 = 20;
    
    //连续赋值
    int i3,j3;
    i3 = j3 = 30;
    
    //扩展赋值运算符
    short s1 = 1;
    // System.out.println(s1 + 1);编译失败,s1 + 1为int型无法赋值给short型变量
    s1++
    System.out.println(s1);  //输出结果为2
    
    int a1 = 1,a2 = 1;
    a1 *= 0.1;
    System.out.println(a1);   //结果为0,不改变变量i的性质
    System.out.println(a2 * 0.1); //结果为0.1,自动转换为double型
    


    比较运算符

    比较运算符

    ➠ 比较运算符的结果都是boolean型,要么是true,要么是false

    ➠ 注意区分“==” 与“=”的区别,不要混淆使用

    int i = 1;
    int j = 2;
    System.out.println(i == j);   //输出false
    System.out.println(i = j);  //输出2
    


    逻辑运算符

    &--逻辑与 |--逻辑或 !--逻辑非
    &&--短路与 || —短路或 ^ —逻辑异或

    逻辑运算符

    ➻ 逻辑运算符用于连接布尔型表达式,在Java中不可以写成3<x<6,应该写
    成x>3 & x<6

    ➻ “&”和“&&”的区别:

    &时,左边无论真假,右边都进行运算

    &&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算

    ➻ “|”和“||”的区别:

    |时,左边无论真假,右边都进行运算

    ||时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算

    ➻ 异或( ^ )与或( | )的不同之处是:当左右相同时,结果为false

    ✒ 开发中推荐使用‘&&’和‘||’

    /*&与&&的区别,|与||相同*/
    class Demo {
        public static void main (String [] args) {
        	boolean b1 = false,b2 = false;
            int num1 = 1,num2 = 1;
            if(b1 & (num1++) > 0){
                System.out.println("Hello World!");
            }else{
                System.out.println("你好世界");
            }
            System.out.println(num1);
            if(b2 && (num2++) > 0){
                System.out.println("Hello World!");
            }else{
                System.out.println("你好世界");
            }
            System.out.println(num2);
        }
    }
    /*输出结果:
     你好世界
     2
     你好世界
     1
     */
    

    练习:

    class Test {
    	public static void main (String [] args) {
    		boolean x = true;
    		boolean y = false;
    		short z = 42;
    		if((z++ == 42)&&(y = true))z++;
    		if((x = false) || (++z == 45)) z++;
    		System. out.println("z=" + z);
    	}
    }
    

    鼠标移动到上显示结果



    位运算符

    位运算是直接对整数的二进制进行的运算

    位运算符

    二进制码说明

    • 最高位为符号位0为正数,1为负数
    • 计算机底层都是使用二进制表示的数值,都以补码的方式来存储数据
    • 对于正数来说:原码、反码、补码是相同的,三码合一

    二进制说明


    左移右移原理示图: 

    详细说明:

    说明



    三元运算符

    格式:(表达式)?表达式1 : 表达式2;

    表达示正确时,结果为表达式1;表达式错误时,结果为表达式2。

    • 表达式1 和表达式2为同种类型
    • 三与 元运算符与if-else
    • 三元运算符可简化if-else语句,但是if-else不一定可以转换为三元运算符
    • 三元运算符要求必须返回一个结果
    • if后的代码块可有多个语句
    • 如果可以使用三元运算符建议优先选择使用三元运算符(代码简单,效率高一些)

    练习:

    取两个数中的较大值

    class MaxNumInTwoNumber {
        public static void main(String args[]){
            int m = 23;
            int n = 12;
            int max = (m > n) ? m : n;
            System.out.println(max);   //输出结果为23
            
            n = 23;
            String maxStr = (m > n)? "m大于n" : ((m == n)? "m等于n" : "n大于m")
            System.out.println(maxStr); //输出结果为:m等于n
            
            //三元运算符改为if-else语句
            n = 12;
            if(m > n){
                System.out.println("两个数中的最大值是:"+m);
            }else
                System.out.println("两个数中的最大值是:"+n);
            }
        }
    }
    


    运算符的优先级

    运算符优先级

    ➠ 运算符有不同的优先级,所谓
    优先级就是表达式运算中的运
    算顺序。如右表,上一行运算
    符总优先于下一行

    ➠ 只有单目运算符、三元运算符、
    赋值运算符是从右向左运算的

    ✒ 开发中尽量使代码简洁效率,对于想优先运算的可以直接加(),一条运算不易过长,可分为多条进行运算


    本博客与CSDN博客༺ཌ༈君☠纤༈ད༻同步发布

  • 相关阅读:
    【转】前端开发工程师如何在2013年里提升自己
    【转】再谈PHP、Python与Ruby
    【转】从知乎上看到“全栈开发者”讨论之后的自黑
    C#精髓 第四讲 GridView 72般绝技
    web网站第一次加载慢的解决方法
    SQL SERVER 提供了一些时间函数:
    Eval() 中数据格式化或格式化数据
    SQL SERVER 取本月上月日期
    LINQ to SQL连接数据库及语句
    权限管理
  • 原文地址:https://www.cnblogs.com/asio/p/12275011.html
Copyright © 2011-2022 走看看