天天看點

大資料必學Java基礎(十六):指派運算符

文章目錄

​​指派運算符​​

​​一、=的作用​​

​​二、練習​​

​​三、面試題​​

​​1、利用第三個變量交換數值,簡單的方法​​

​​2、可以用兩個數求和然後相減的方式進行資料交換,弊端在于如果 x 和 y 的數值過大的話,超出 int 的值會損失精度​​

​​3、利用位運算的方式進行資料的交換,利用的思想原理是:一個數異或同一個數兩次,結果還是那個數,而且不會超出int範圍 ​​

​​4、最為簡單的,在列印輸出的時候直接交換變量 ​​

​​四、擴充指派運算符 ​​

​​1、代碼​​

​​2、a+=b  和  a=a+b  差別​​

​​3、面試題​​

指派運算符

一、=的作用

将等号右側的值賦給等号左側

int age = 19;

int age = 10+3+8;      

二、練習

public class TestOpe06{
        public static void main(String[] args){
                //任意給出兩個數,交換兩個數并輸出:
                //1.給出兩個數:
                int num1 = 10;
                int num2 = 20;
                
                //2.輸出交換前的兩個數:
                System.out.println("交換前:"+num1+"\t"+num2);
                
                //3.交換
                /*
                錯誤代碼:
                num1 = num2;
                num2 = num1;  
                */    
                //解決辦法:
                //引入一個中間變量:
                int t;
                t = num1;
                num1 = num2;
                num2 = t;
                /*
                int t;
                t = num2;
                num2 = num1;
                num1 = t;
                
                */
                
                //4.輸出交換後的兩個數:
                System.out.println("交換後:"+num1+"\t"+num2);
        }
}      

分析

大資料必學Java基礎(十六):指派運算符

三、面試題

兩個數交換的四種方式:

對于兩種變量的交換,發現四種方法,下面用Java來示範一下

1、利用第三個變量交換數值,簡單的方法

class TestEV
//建立一個類
{
    public static void main(String[]args)
    {
        int x =5,y=10; //定義兩個變量

        int temp = x;    //定義第三臨時變量temp并提取x值
        x = y;        //把y的值賦給x
        y = temp;      //然後把臨時變量temp值賦給y

        System.out.println("x="+x+"y="+y);

    }

}      

2、可以用兩個數求和然後相減的方式進行資料交換,弊端在于如果 x 和 y 的數值過大的話,超出 int 的值會損失精度

class TestEV
//建立一個類
{
    public static void main(String[]args)
    {
        int x =5,y=10; //定義兩個變量

        x = x + y;        //x(15) = 5 + 10;
        y = x - y;        //y(5) = x(15) - 10;
        x = x - y;        //x(10) = x(15) - y(5)
        System.out.println("x="+x+"y="+y);

    }

}      

3、利用位運算的方式進行資料的交換,利用的思想原理是:一個數異或同一個數兩次,結果還是那個數,而且不會超出int範圍 

class TestEV
//建立一個類
{
    public static void main(String[]args)
    {
        int x =5,y=10; //定義兩個變量

        x = x^y;
        y = x^y;  //y=(x^y)^y
        x = x^y;  //x=(x^y)^x
        System.out.println("x="+x+"y="+y);

    }

}      

4、最為簡單的,在列印輸出的時候直接交換變量 

class TestEV
//建立一個類
{
    public static void main(String[]args)
    {
        int x =5,y=10; //定義兩個變量

        System.out.println("x="+y+"y="+x); //直接在輸出的時候交換

    }

}      

四、擴充指派運算符 

1、代碼

public class TestOpe07{
        public static void main(String[] args){
                //實作功能:給出三個數,求和:
                //1.給出三個數:
                int num1 = 10;
                int num2 = 20;
                int num3 = 30;
                //2.求和
                //int sum = num1+num2+num3;
                //定義一個變量,用來接收和:
                int sum = 0;
                sum = sum + num1;//等效:  sum += num1;
                sum = sum + num2;// sum += num2;
                sum = sum + num3;//sum += num3;
                //3.将和輸出:
                System.out.println("和:"+sum);
        }
}      

記憶體

大資料必學Java基礎(十六):指派運算符

2、a+=b  和  a=a+b  差別

(1)a+=b    可讀性稍差 編譯效率高   底層自動進行類型轉換

(2)a=a+b     可讀性好  編譯效率低   手動進行類型轉換

3、面試題

(1)請問a+=b相當于a=a+b,那麼也相當于  a=b+a嗎?

大資料必學Java基礎(十六):指派運算符

(2)下面的代碼哪一句出錯 

byte a = 10;  --->1

int b = 20;  --->2

a+=b;  ---->3

  • 📢停下休息的時候不要忘了别人還在奔跑,希望大家抓緊時間學習,全力奔赴更美好的生活✨