我的Thinking in Java學習筆記(五)

來源:互聯網
上載者:User
流程式控制制
   java中的流程式控制制語句有 if-else  whlie  do-whlie  for   switch-case  但是沒有提供goto,他在java中是保留字,不是關鍵字(以後可能會有哦~)
   true和false
    java中不支援用數字表示boolean值,如果你一定要使用,請先以運算式將他轉換為boolean值,例如if(a==0)
   if-else
    這個流程式控制制語句恐怕是我們最常用的了,其中else可有可無可以使用
    if(boolean)                                                      if(boolean)
     statement                                                       statement
                                                                           else
     或者                                                                   statement
    其中statement可以是一個單獨的語句,也可以是好幾個語句組成的複合陳述式,當使用複合陳述式的時候一定要用大括弧括起,而單獨的語句,可適可不適
    舉個使用的例子吧
      public class test
      {
       public static void main(String args[])
       {
        int i=0;
        if(i>=0)//這裡需要注意的是千萬不要加;號
        {
         System.out.println("i>=0");
        }
        else
        {
         System.out.println("i<0");
        }
       }
      }
   return
     關鍵字return的作用:指明函數需要傳回的值,並且立即傳回。這裡需要知道2點,傳回值的類型的表達範圍要等於或者小於函數的傳回型別,例如,函數傳回值是int,你如果返回一個double的數值,編譯器就會抱錯,反之,則不會
     public class test
     {
      public static double go()
      {
       if(1>0)
       {
        System.out.println("hello");
        return 100l;//返回一個long類型的100
        //!System.out.println("hello");注意在return的後面不可以再加任何語句,return就是一個程式塊的終結點
       }
       else
        return 100f;//返回一個flout類型的100//注意使用了if-else分別來返回一個值的時候,切記在if和else後面都要加上return
      }
      public static void main(String args[])
      {
       System.out.println(go());
      }
     }
     你還可以使用不加傳回值的return;來跳出函數,但是注意,如果你要使用這樣的方法,那麼函數的傳回值類型那裡一定要是void
   迭代         
    while  do-while  for 這幾組關鍵字用來控制迴圈,他們有的時候也會被歸結在迭代語句中。
   while
     例子  while(boolean)
       {
        //......
       }//持續執行內部代碼,直到讓boolean變成false為止 
   do-while
             例子   do
                 //........
                while(boolean)
                 //......
             他和while的唯一差別是,do-while至少會被執行一次,哪怕一開始都不滿足true啟動並執行條件,至少執行一次的語句要放在do的裡面
     for
         for迴圈會執行如下幾個步驟 1、初始設定變數 2、進行條件判斷 3、每執行完一次,進行一次步進
         例如for(int i=0;i<10;i++)會先初始化i,判斷i是否小於10,如果小於執行for迴圈體內的語句,並且把i的值加1,直到i大於10的時候,退出。其中的3步都可以為空白的,即for(;;),則他的意義和while是一樣的。
         你還可以在for語句中定義多個變數,但是他們的類型一定要一樣,這種定義的方法式能且只能在for中使用
      for(int i=0,j=1;i<10&&j!=11;i++,j++)
         要注意,在for括弧裡面定義的變數,只能在for迴圈的表達控制式中使用和存活,而不是在迴圈體的大括弧內的!
   break和continue
    在迭代語句中,你可以使用break和continue來控制迴圈語句,他們的唯一區別就是,break會跳出迴圈,不去執行剩餘部分,而continue會停止當前的迭代,回到迴圈的啟示出,開始下一個迭代。
       public class test
       {
        public static void main(String args[])
        {
         for(int i=0;i<100;i++)//2
         {
          if(i==88)
           break;//這句話導致i的值永遠不會大於88,因為如果大於88的話,程式就會跳出,到1的哪個位置了
          if(i%2!=0)
           continue;//當i是個偶數的時候,程式才會向下執行,列印出i的值,如果不是偶數,則跳到2處,把i++再重新迴圈
          System.out.println(i);
         }//1
        }
       }
      其實哪個i==88是個廢話,完全可以在for迴圈中就能控制,我只不過舉了個例子而已,呵呵
   臭名朝著的"goto"
     從第一個程式語言誕生的時候就有goto這個關鍵字,然而,由於大多數程式員的使用不當,而引發出來很多問題。這不是goto的問題,就想槍支一樣,好人用了就是武器,壞人用了就是兇器~嘿嘿~
     java中沒有goto,但是有和goto功能類似的語句-----標記,可以執行類似跳躍功能,但不是真正的跳躍,而是一種中斷迭代語句的方式他可以和break、continue共用,共用的效果是可以中斷所有進行中的嵌套迴圈,直到label的所在處。標記其實就是個後面緊跟冒號的標示符,例如  thisislabel :。在java中唯一能放label的地方就是迭代語句開始之前,請不要在label和迭代語句之間加入任何內容。
     使用規則
      1、continue會跳躍到他所在的內層迴圈頂端,繼續執行
      2、contine label會跳躍到label所在的位置,然後重新進入迴圈
      3、break會跳離迴圈
      4、break label會跳離label所在的位置
      while 中使用label例子
      public class test
      {
       public static void main(String args[])
       {
        int i=0;
        oneLabel:
        while(true)
        {
         System.out.println("this is while method");
         while(true)
         {
          i++;
          System.out.println(i);
          if(i==1)
          {
           System.out.print(i);
           System.out.println("continue");
           continue;
          }
          if(i==3)
          {
           System.out.print(i);
           System.out.println("continue oneLabel");
           continue oneLabel;
          }
          if(i==5)
          {
           System.out.print(i);
           System.out.println("break");
           break;
          }
          if(i==7)
          {
           System.out.print(i);
           System.out.println("break oneLabel");
           break oneLabel;
          }
         }
        }
       }
      }         
      for使用label例子
      public class test
      {
       public static void main(String args[])
       {
        int i=0;
        oneLabel:
        while(true)
        {
         System.out.println("this is while method");
         for(;i<8;i++)
         {
          System.out.println(i);
          if(i==1)
          {
           System.out.print(i);
           System.out.println("continue");
           continue;
          }
          if(i==3)
          {
           System.out.print(i);
           System.out.println("continue oneLabel");
           i++;//continue oneLabel會跳出for迴圈,則沒有進行一次完整的迭代,所以累加不會發生,為了禰補,我們在這裡把i+1
           continue oneLabel;
          }
          if(i==5)
          {
           System.out.print(i);
           System.out.println("break");
           i++;//break會跳出for迴圈,則沒有進行一次完整的迭代,所以累加不會發生,為了禰補,我們在這裡把i+1
           break;
          }
          if(i==7)
          {
           System.out.print(i);
           System.out.println("break oneLabel");
           break oneLabel;
          }
         }
        }
       }
      }
      大家要記住!在java中唯一需要使用label的理由就是:在嵌套迴圈中想要讓break和continue越過一個以上的嵌套
    switch
      switch(i)
      {
       case 0:System.out.println("0");
          break;
       case 1:System.out.println("1");
          break;
       case 2:System.out.println("2");
          break;
       case 3:System.out.println("3");
          break;
       default:System.out.println("default");
      }
      switch是一種選擇語句,他會根據一個運算式產生的值,挑出一個合格來執行。每個case後面都會以一個break來結束,如果要是沒有break的話,他會找到合格語句後,繼續執行下面的句子,直到遇到break的時候才停止需要注意的地方,case後面的值不可以重複,如果沒有符合的,系統會自動執行default。還有,swtich只能判斷整數基礎資料型別 (Elementary Data Type) ,字串或者浮點數是不行的
    習題解答
      5、寫出一個程式,讓他在列印到47的時候停止(範圍100),利用關鍵字break,在試試return
      public class test
      {
       public static void main(String args[])
       {
        for(int i=0;i<100;i++)
        {
         if(i<47)
         System.out.println(i);
         else
          break;//return;
        }
       }
      }
      7、撰寫程式,產生24個隨機數,針對每個數值,使用if-else語句來區分是否大於、小於、等於下一個隨機數
      import java.math.*;
      class test
      {
       public static void main(String args[])
       {
         int num[]=new int[25];
         
         for(int i=0;i<25;i++)
         {
          num[i]=(int)(Math.random()*100);
         }
          for(int i=0,j=1;i<25&&j<25;i++,j++)
         {
          System.out.println(j+"   "+num[i]+"   "+num[j]);
          if(num[i]>num[j])
          {
           System.out.println(num[i]+">"+num[j]);
          }
          if(num[i]<num[j])
          {
           System.out.println(num[i]+"<"+num[j]);
          }
          if(num[i]==num[j])
          {
           System.out.println(num[i]+"=="+num[j]);
          }
          
         }
       }
      }
      至於第8題,由於我們還沒有學習到事件的監聽,所以這個題做起來的意義不大 
      其他的題目也很簡單。有什麼不會的可以問我
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.