[第三章]第二節、流程控制和運算符

第二節、流程控制和運算符

 一、流程控制

程序控制語句:

              (1) if  else 語句

              if (a>b){

                     a=0;

              }else if(a>c){

                     a=1;

              }else{

                     a=-1;

              }

 

             if(a!=b) a=b;        // if else語句後僅有一條語句時,可以省略大括號

              else  a=c;        // 但爲了清晰和防止出錯,一般都如第一個例子使用大括號

 

              (2)switch

                     switch (expression) {   // expression參數 必須爲 byteshortintchar類型。

                            case value1:              // value1—valueN必須是與expression兼容,且互不相等的常量

                                   //do something here

                                   break;              //break語句是可選的。

case value2:

//do something here

//此處省略break語句

                            case value3:

                                   //do something here

                            break;

                            default:           //default爲可選,如果expression的值與value1-N不匹配則執行default語句。

                            a=0;

              }

 

(3)while

              int counter=0;             //用來計數的變量

              boolean condition=true;

              while ( condition ) {        //判斷condition是否爲true,如否則結束while循環。

                     counter++;

                     if(counter=10){

                            condition=false; // counter=10時,將condition設置爲false

                     }

              }

              /**       while循環的循環體可以爲空

               * 因爲一個空語句(null statement,僅由一個分號組成的語句)Java的語法上是合法的。

               */

package Examples;

class Demo {    

              public static void main(String[] args){

                     int a,b;

                     a=100;

                     b=200;   

                     while(++a<--b);   //判斷condition時,a先自加1b自減1,然後再進行ab的比較

                                                 //另外請注意最後必須用分號結束

                            System.out.println("Midpoint is " + a);

                     }

}           

 

       (4)do-while             

              int counter=0;

              boolean condition=false;

              do{                //執行do-while循環時,會先執行循環體再判斷condition

                     counter++

                     if(condition){

                            System.out.println(“ “+(counter+1)+”!”);

                     }

              }while( condition );  //注意這裏有分號

 

       (5)for     

//要注意for中循環初始化部分和反覆部分聲明的變量不能同for循環所在方法內的變量同名。例:

package Examples;

public class ForDemo{

       public void forMethod(){

              // int i=0;     //當這個聲明語句沒有被註釋掉的話,那麼編譯時就會出現錯誤。

 

              for( int i=0; i<10 ; i++){  // 括號中分別爲(初始化部分;條件判斷;反覆部分)

                     System.out.println("number"+i);

              }

              for(int i=10,j=20;i<j;i++,j--){       //循環中初始和反覆部分可以聲明多個變量,

                     System.out.println("I is :"+i+" , J is :"+j);  

              }

       }

       public static void main(String[] args){

              ForDemo fd=new ForDemo();

              fd.forMethod();

       }

}

 

       (6)跳轉語句:

       break:  1.終止一個語句序列;2.退出當前循環;3.類似goto的作用,如下例所示

 

       LABEL:   {

int a,b;

a=10;

b=2a;

for( int i=0;i<10;i++){

                                   for(int j=0;i<10;j++){

                                          if(i==5&&j==5)  break LABEL;  //使用break退出LABEL代碼塊

                                   }

                            }

                     }

 

       continue:  1.強迫一個循環提早反覆,即忽略循環體中continue語句後面的代碼,直接跳到condition處。

                       2.可以指定一個標籤來說明繼續哪個包圍的循環,如下例所示

              package Examples;

public class ContinueDemo{

                     public static void main(String[] args){

                            String s;

          OUTER:  for( int i=1;i<10;i++){ // 19

                                   for(int j=1;j<10;j++){

                                          if(j>i){

                                          System.out.println();  //打印一個空行並換行

                                          continue OUTER;

                                          }

                                   s=(i*j)>9?String.valueOf(i*j):(" "+String.valueOf((i*j)));

                                   System.out.print("  "+i+"x"+j+"="+s);

                                   }

                            }

                     }

}

編譯後輸出的是一個99乘法表。

 

       return:  return語句用來明確地從一個方法返回.

 

 

       二、運算符

       (1)算術運算符: 算術運算符不能用在boolean類型上,但可用在char類型,

              +  -  *  /              加,減,乘,除   //整數除法運算中所有餘數都會被捨去

              %                         模運算           //模運算結果是整數除法的餘數

              ++  --                 遞增,遞減    //在前,則先自加(減)再運算,在後則相反

              +=   -=   *=  /=  %=    加法賦值,減法賦值,乘法賦值,除法賦值,模運算賦值

                                                        //例:a+=10 等同於a=a+10a%=2 等同於a=a%2

       (2) 位運算符:

              ~  &  |  ^    按位非(NOT),按位與(AND),按位或(OR),按位異或(XOR

                                   //非:每位取反; 與:兩位均1 1;或:有11;異或:不同爲1

              >>  >>>  <<  右移   右移,左邊空出的位以0填充; 左移

                                   //移位符號右邊數值指定移動位數 value>>num;   -1右移的結果總是-1

              &=   |=  ^=   按位與賦值, 按位或賦值 按位異或賦值

              >>= >>>= <<=  右移賦值; 右移賦值,左邊空出的位以0填充; 左移賦值

       3)關係運算符:

              = =   !=  >  <  >= <=     等於,不等於,大於,小於 ,大於等於, 小於等於

 

       4)布爾邏輯運算符:

              &  |  ^          邏輯與,邏輯或,異或

//無論符號左邊表達式值爲truefalse都會對右邊表達式進行運算

              &&  ||  ! 短路與,短路或,邏輯反 //&&時,當符號左邊爲false,則不用求符號右邊表達式

                                                                        //||時,如符號左邊爲true,則不用求符號右邊表達式

              &= |=  ^=    邏輯與賦值,邏輯或賦值,邏輯異或賦值

              ==  !=          相等,不等

              ? :          三元運算符(if-then-else)例 i=i>0? i : -1; //i>0i=i;反之i=-1

        (5)運算符優先級

              高:

                    ( )              [ ]           .

                     ++          --              ~            !

                     *              /             %

                     +              -

                     >>          >>>        <<

                     >              >=          <            <=

                     = =            !=

                     &

                     ^

                     |

                     &&

                     | |

                     ? :

                     =              op=

              低:

    (6)其他運算符

        instanceof      要求運算符左側的操作數是一個對象或數組值,

右側操作數是一個數據類型的名稱,

如果左側的操作數是右側數據類型的一個實例,則true,反之false

Null不是任何對象的實例

        if(new int[] {10} instanceof int[])

            System.out.println(“True!”);

       

    (7)字符轉義序列:

              /ddd               八進制字符(ddd

              /uxxxx              十六進制Unicode碼字符

              /’                   單引號

              /”                   雙引號

              //                   反斜杆

              /r                   回車鍵

              /n                  換行

              /f                   換頁

              /t                   水平製表符

              /b                  退格

發佈了54 篇原創文章 · 獲贊 0 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章