java(運算子,控制流程程語句,函數 )

來源:互聯網
上載者:User

標籤:long   markdown   小數   重載   函數名   一起   結束   ati   其他   

運算子資料類型轉換:

小資料類型-------->大資料類型(自動類型轉換)

大資料類型--------->小資料類型(強制類型轉換)

強制類型轉換的格式:

小資料類型  變數名 = (小資料類型)大資料類型

注意的細節:

1.凡是byte、short、char資料類型資料在運算的時候都會自動轉換成int類型的資料再運算。
2.兩個不同資料類型的資料在運算的時候,結果取決於大的資料類型。

class Demo2 {    public static void main(String[] args) {        /*        byte  b=  11;   // 一個位元組        short s = b; // 把b變數儲存的值賦予給s變數。2位元組        int i = s;   // i是4位元組        long l = i;  // l 是8個位元組。         System.out.println(l);        int i = 128;  //4個位元組        byte b =(byte) i;  // 1個位元組        System.out.println(b);  // -128                //如果是負數,那麼最高位肯定是1, 正數的二進位位的最高位是0。        System.out.println(Integer.toBinaryString(-7));  //sun給我們提供一個功能 Integer.tobinaryString()  查看一個資料的位元據形式的。        //   11111001(補碼)        凡是byte、short 、 char資料類型資料在運算的時候都會自動轉換成int類型的資料再運算。               byte b1 =1;        byte b2 = 2;        byte b3 = (byte)(b1+b2);        System.out.println(b3); //3           System.out.println(‘a‘+1); //98                  兩個不同資料類型的資料在運算的時候,結果取決於大的資料類型        int i =10;        long l = 20;        i = (int)(i+l);         System.out.println(i);        */            int i = 10;  //        byte b = i;  // 一個整數沒有加上任何標識的時候,預設是int類型的資料。        //10 是一個常量, 編譯器在編譯的時候就能夠確認常量的值了,byte b = 10,在編譯到的時候        //java編譯器就會檢查到10並沒有超出byte的表示範圍,所以允許賦值。        //java編譯器在編譯 的時候並不能確認變數所儲存的值,變數儲存的值是在啟動並執行時候才在記憶體中分配空間 的。        System.out.println(b);        }}
算術運算子:

+ (正數、加法、串連符)串連符的作用:讓任何的資料都可以與字串進行拼接。如果+號用於字串的時候,那麼+號就是一個串連符,並不是做加法功能了。

串連符要注意:任何類型的資料與字串使用串連符串連,那麼結果都是字串類型的資料。

++(自增): 自增就是相當於運算元+1.

前自增:++位於運算元的前面。比如:++a;

前自增:先自增,後使用。

後自增: 先使用,後自增。

--(自減):運算元-1.

前自減: --位於運算元的前面。--運算元

前自減:先自減,後使用。

後自減:--位於運算元的後面。 運算元--;

後自減: 先使用,後自減。

賦值運算子:

= (賦值運算子)
+=
-=
*=
/=
%=

比較子:比較子的結果都是返回一個布爾值的。

!= (不等於)
> (大於)
< (小於)
>= (大於等於)
<= (小於等於)

==用於比較兩個基礎資料型別 (Elementary Data Type)資料的時候,比較的是兩個變數所儲存的值是否一致.
==用於比較兩個參考型別變數的資料時候,比較的是兩個 參考型別變數所記錄的記憶體位址是否一致.

邏輯運算子:邏輯運算子的作用是用於串連布林運算式的。

amp; (與,並且)
規律: 只有左右變數同時為true,那麼結果才是true,否則就為false。

| (或,或者)

規律:只要兩邊的布林運算式有一邊為true,那麼結果就為true,只有兩邊同時為false 的時候,結果才是false.

^ (異或)

規律:只要兩邊的布林運算式 結果不一致,那麼結果就為true,如果左右兩邊 的布林運算式一致,那麼就為false.

! (非)

=================

&& (短路與\雙與)

短路與和單與符號的相同與不同點:

相同點:短路與和單與運算的結果是一樣的。

不同點:使用短路與的時候,如果左邊的布林運算式為false,則不會在運算右邊的布林運算式,從而提高了效率。使用單與的時候,即使發現左邊的布林運算式為false,還是會運算右邊的布林運算式的。只有左邊的布林運算式為false時,雙與的效率才要高於單與的.

|| (短路或\雙或)

短路或與單或的相同點與不同點:

相同點:運算的結果是一致的。
不同點:使用短路或的時候,當發現左邊的布林運算式為true時,則不會運算右邊的布林運算式。使用單或的時候 發現左邊的布林運算式為true,還是會運算右邊布林運算式。

位元運算符:位元運算符就是直接操作二進位位的。

amp;(與)
|(或)
^(異或)
規律:如果運算元A連續異或同一個運算元兩次,那麼結果還是運算元A。

位元運算符可能會出現的筆試題目:

  1. 交換兩個變數的值,不準出現第三方變數。
  2. 取出一個位元據的指定位元。要求讀取該位元據的低4位
    00000000-00000000-00010100-01001101
    amp; 00000000-00000000-00000000-00001111
    --------------------------------------------------------------
    00000000-00000000-00000000-00001101
移位元運算符:

<<(左移)
規律:一個運算元進行左移運算的時候,結果就是等於運算元乘以2的n次方,n就是左移的位元.

3<<1 = 3*2(1) = 6;
3<<2 = 3*2(2) = 12
3<<3 = 3*2(3) = 24

>>(右移)

規律:一個運算元在做右移運算的時候,實際上就是等於該運算元除以2的n次方,n就是移的位元。

3>>1 = 3 / 2(1) = 1
3>>2 = 3 / 2(2) = 0

>>>(無符號右移) :

無符號右移與右移的區別:進行右移運算的時候,如果運算元是一個正數,那麼左邊的空缺位使用0補,如果運算元是一個負數,那麼左邊的空缺位使用1補。而使用無符號右移的時候,不管是正數還是負數都統一使用0補。

三元運算子(三目運算子)

格式:
布林運算式?值1:值2;

三元運算子要注意的細節:
使用三元運算子的時候,一定要使用該運算式返回的結果,或者是定義一個變數接收該運算式返回的結果。

控制流程程語句控制流程程語句之(if)判斷語句

格式1:適用於一種情況使用。

if(判斷的條件){    //符合條件執行的代碼;        }

格式2:適用於兩種情況下去使用的。

if(判斷條件){    //符合條件執行的代碼}else{    //不符合條件執行的代碼;}

格式二作用相當於三元運算子:布林運算式?值1:值2;

格式三:適用於多種情況下去使用的。

if(判斷條件1){    //符合條件1執行的代碼}else if(判斷條件2){    //符合條件2執行的代碼}else if(判斷條件3){    //符合條件3執行的代碼}......else{    //都不符合上述 的條件執行的代碼   }

if語句要注意的細節:

  1. 如果符合條件後只有一個語句需要執行,那麼可以省略大括弧。但是建議不要省略,因為結構不清晰。
  2. if語句的判斷條件後不能添加分號,否則會影響到執行的效果的。
控制流程程語句之----switch選擇判斷語句

switch語句的格式:

switch(你的選擇){        case 值1:        符合值1執行的代碼        break;    case 值2:        符合值 2執行的代碼        break;    case 值3:        符合值 3執行的代碼        break;    case 值4:        符合值 4執行的代碼        break;    ......    default:         你的選擇都符合上述的選項時執行的代碼;        break;}

switch語句要注意的事項:

  1. switch語句使用的變數只能是byte、 char、 short、int、 String資料類型,String資料類型是從jdk7.0的時候開始支援的。
  2. case後面跟 的資料必須是一個常量。
  3. switch的停止條件:
    switch語句一旦匹配上了其中的一個case語句,那麼就會執行對應的case中的語句代碼,執行完畢之後如果沒有遇到break關鍵字或者是結束switch語句的大括弧,那麼switch語句不會再判斷,按照代碼的順序從上往下執行所有的代碼。直到遇到break或者是結束siwitch語句的大括弧為止。
  1. 在switch語句中不管代碼的順序如何,永遠都是會先判斷case語句,然後沒有符合的情況下才會執行default語句。

if--else if---else if 語句與switch語句非常的相似:
switch語句的優點:switch語句的結構清晰。switch缺點:如果 判斷的條件是一個區間範圍的,使用switch操作就非常的麻煩了。

class Demo2{    public static void main(String[] args)  {        int option = 1; //定義一個變數儲存你的選擇        switch(option){            case 1:                System.out.println("java");                            case 2:                System.out.println("C#");                            case 3:                System.out.println("javascript");                            case 4:                System.out.println("android");            default:                System.out.println("你的選擇有誤");                       }        /*        String str = "world";        switch(str){            case "hello":                System.out.println("hello");                break;            case "world":                System.out.println("world");                break;        }        */    }}
迴圈語句----while迴圈語句

while迴圈 語句的格式:

while(迴圈的條件){    //迴圈語句;}

while迴圈語句要注意的事項:

  1. while迴圈語句一般是通過一個變數控制其迴圈的次數。
  2. while迴圈語句的迴圈體代碼如果只有一個語句的時候,那麼可以省略大括弧。但是也是不建議大家省略。
  3. while迴圈語句的判斷條件後面不能跟有分號,否則會影響到執行的效果。
控制流程程語句----do while迴圈語句

格式:

do{    //...}while(判斷條件);

while迴圈語句與do-while迴圈語句的區別:
while迴圈語句是先判斷後執行迴圈語句的,do-while迴圈語句是先執行,後判斷。不管條件是否滿足至少會執行一次。

11控制流程程語句之---for迴圈語句

for迴圈語句的格式:

for(初始化語句;判斷語句;迴圈後的語句){    //迴圈語句;}

for迴圈語句 要注意的事項:

  1. for(;;)這種寫法是一個死迴圈語句,相當於while(true);
  2. for迴圈語句的初始化語句只會執行一次,只是在第一次迴圈的時候執行而已。
  3. for迴圈語句的迴圈體語句只有一句的時候,可以省略大括弧不寫。但是不建議省略。
class Demo13 {    public static void main(String[] args)     {        for(int i = 0 ; i< 5 ; i++){            for(int j = 0 ; j<=i ; j++){ //控制列數                 System.out.print("*");            }            //換行            System.out.println();        }    }}
逸出字元:特殊字元使用””把其轉化成字元的本身輸出,那麼使用””的字元稱作為轉移字元。

常見的逸出字元有:

\b  Backspace (退格鍵)\t  Tab 定位字元(定位字元的作用就是為了讓一列對齊) 一個tab一般等於四個空格。\n  換行\r  斷行符號  把游標移動到一行的首位置上。

注意: 如果是在windows系統上操作檔案的時候需要換行,是需要\r\n一起使用的。如果是在其他的作業系統上需要換行,僅需要\n即可。

break關鍵字

break適用範圍:只能用於switch或者是迴圈語句中。

break作用:

  1. break用於switch語句的作用是結束一個switch語句。
  2. break用於迴圈語句中的作用是結束當前所在的迴圈語句。
continue關鍵字

continue的適用範圍:continue只能用於迴圈語句。
continue的作用:continue的作用是跳過本次的迴圈體內容。繼續下一次。

continue要注意的事項:

1.在一種情況下,continue後面不能跟有其他語句,因為是永遠都無法執行到。
2.continue 也可以配合標記使用的。

函數(方法):

函數的作用:提高功能代碼的複用性。

函數的定義格式:

修飾符  傳回值類型  函數名(形式參數..){    需要被封裝的功能代碼;    return 結果;}
public static int add(){    int a =2;    int b =3;    return a+b;}

修飾符: public static

傳回值類型:int。傳回值類型就是指函數運行完畢後,返回的結果的資料類型。

注意:某些函數是沒有結果返回給調用者的,那麼這時候傳回值類型是void。

函數名:add

函數名的作用:如果需要調用該函數就需要使用的函數名。 函數名只要符合標識符的命名規則即可。

函數名的命名規範:首單詞全部小寫,其他單詞的首字母大寫,其他小寫。

形式參數:如果一個函數在啟動並執行時候,存在著資料是要調用者確定 的,那麼這時候就應該定義形式參數。

return : 把一個結果返回給調用者。

函數的特點:

  1. 函數定義好之後,是需要被調用才會執行的。main函數是有jvm調用的,不需要我們手動調用。
  2. 函數定義好之後是需要被調用才會執行的。
  3. 如果一個函數沒有傳回值返回給調用者,那麼傳回值類型必須是使用void表示。
class Demo3 {    public static void main(String[] args) {        //String result = getGrade(189);        //System.out.println(result);        print(7);    }    //需求2: 定義一個函數列印一個乘法表,不需要返回任何資料。     public static void  print(int row){        for(int i = 1 ; i<= row ; i++){            for (int j = 1 ;j<=i  ;j++ ){                System.out.print(i+"*"+j+"="+i*j+"\t");            }            //換行            System.out.println();        }    }    //需求1: 定義一個函數判斷一個分數的等級,把分數的等級返回給調用者。    public static String getGrade(int score){        String grade = "";  //定義一個變數儲存等級        if(score>=90&&score<=100){            grade = "A等級";        }else if(score>=80&&score<=89){            grade = "B等級";        }else if(score>=70&&score<=79){            grade = "C等級";        }else if(score>=60&&score<=69){            grade = "D等級";        }else if(score>=0&&score<=59){            grade = "E等級";        }else{            grade = "補考等級";        }        return grade;   //把等級返回給調用者    }}   

注意:如果一個函數的傳回值類型是具體的資料類型,那麼該函數就必須要保證在任意情況下都保證有傳回值。(除了傳回值類型是void以外)

return 關鍵字的作用:

  1. 返回資料給函數的調用者。
  2. 函數一旦執行到了return關鍵字,那麼該函數馬上結束。(能結束一個函數)

注意:一個函數的傳回值類型 是void,那麼也可以出現return關鍵字,但是return關鍵字的後面不能有資料。

break關鍵字與return關鍵字的區別:

1.break關鍵字是結束一個迴圈。
2.return關鍵字是結束一個函數。

函數的重載:在一個類中出現兩個或者兩個以上的同名函數,這個稱作為函數的重載。

函數重載的作用:同一個函數名可以出現了不同的函數,以應對不同個數或者不同資料類型的參數。

函數重載的要求:

1.函數名一致。
2.形參列表不一致(形式參數的個數或者是對應的資料類型不一致)。
3.與函數的傳回值類型是無關的。

class Demo3 {    public static void main(String[] args) {        //System.out.println("Hello World!");        //add1(1,2);        add(1,2.0);    }// 這些函數都是在做加法運算。    public static double add(int a, int b) {        System.out.println("兩個參數的總和: "+ (a+b));        return 3.14;    }        //重複定義    public static int add(int a, double b) {        System.out.println("double參數的總和: "+ (a+b));        return 12;    }   /*    public static void add(int a , int b , int c){        System.out.println("三個參數的總和: "+ (a+b+c));    }    public static void add(int a , int b , int c,int d){        System.out.println("四個參數的總和: "+ (a+b+c+d));    }*/}

java(運算子,控制流程程語句,函數 )

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.