<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 24,  comments - 29,  trackbacks - 0
     

            Java語言同其它大多數的編程語言一樣,也存在有控制循環的編程結構,它分為不確定循環和確定循環兩種類型。

    一、不確定循環

            所謂不確定循環,也就是我們不能確定循環所要執行的次數,執行的次數是根據程序中參數的變化自動控制的。

            它主要有兩種表現形式:第一種形式是while形式,第二種形式是do/while形式。

           1) while

           它的英語意思就是“當”,它在循環控制中也可以這樣理解,它的語法格式是:

    while(條件)

    {

     目的一;

     目的二;

    ……

    }

            換成中文的含義就是“當條件為真時,就執行循環體,當條件為假時,就不執行循環體。”

            下面我們編寫一個比較有意思的程序來說明這個結構:

            我的同事小李自從參加工作以后,每個月都要交納一定的住房基金,以準備買房子?,F在他每個月工資是2000元,以后每年按10%的比例增加,其中工資的5%是用來交納住房基金的,他想知道多少年后,他可以有20萬元住房基金。

    /*while循環控制結構的測試*/

    public class BuyHouse

    {

     public static void main(String[] args)

     {

       final double HOUSEFUND = 200000;

       double salary = 2000;

       double fund = 0;

       int years = 1;

     while(fund < HOUSEFUND)

         {

          fund += salary * 0.05 * 12;

          years++

          salary = salary * 1.1;

         }

       System.out.println(“the total years is :” + years);

       System.out.println(“the total fund is :” + fund);

     }

    }

    輸出結果:the total years is :32

              The total fund is :218332.10994930082

    程序分析:

            在開始的時候,我們并不知道需要多少年,但我們知道它的結束條件,那就是基金需要達到20萬元。我們以它作為程序結束的條件,進行循環。通過這個程序我們可以總結出以下幾點:

           1、循環開始執行的條件是為真;

           2、必須要有使程序結束的自變量在變化;

           3、循環判斷條件為假時,程序中止循環。

     

    2)do/while

    我們先把前面的程序做一個改造,來比較一下兩個程序的區別:

    /*while循環控制結構的測試*/

    public class BuyHouse2

    {

     public static void main(String[] args)

     {

        final double HOUSEFUND = 200000;

        double salary = 2000;

        double fund = 0;

        int years = 1;

        do

        {

          fund += salary * 0.05 *12;

          years++;

          salary = salary * 1.1;

        }

        while(fund < HOUSEFUND);

        System.out.println(“the total years is :” + years);

        System.out.println(“the total fund is:” + fund);

     }

    }

    輸出結果:the total years is :32

              the total fund is :218332.10994930082

    我們再看兩個小程序,并對比一下他們的輸出:

    /*測試不確定循環的兩種表現形式的區別*/

    public class DifferTest

    {

    public static void main(String[] args)

    {

     int i = 2;

     do

     {

       i++;

       System.out.println(“the value I is:” + i);

     }

    while(I < 2);

    }

    }

    輸出結果:the value i is:3

     

    /*測試不確定循環的兩種表現形式的區別*/

    public class DifferTest2

    {

    public static void main(String[] args)

    {

     Int i = 2;

     while (i < 2)

     {

       i++;

       System.out.println(“the value I is:” + i);

     }

    }

    }

             這個沒有任何輸出結果,這兩種形式是有一定差別的:while語句是先進行條件判斷,再進行循環體的處理;do/while語句是先進行循環體的處理再判斷條件語句,也就是在執行判斷之前已經將循環體內的邏輯處理了一遍。

     

    二、確定循環

             for()循環是最簡單的循環語句,它可以通過計數器或在每次循環后修改某個類似于計數器變量的值來控制它。它的格式如下:

    for(初始化表達式;判斷表達式;遞增(或遞減)表達式)

    {

    執行語句;

    }

            初始化表達式:它是用來設定循環控制變量的初始值,也就是循環的起點。

           判斷表達式:用來判斷循環是否結束的表達式,也就是循環的終點。程序循環是否持續進行由判斷表達式決定;通常判斷表達式是關系表達式,當關系表達式的值為真是,程序繼續進行循環,當關系表達式的值為假時,循環結束。

           遞增(遞減)表達式:是循環控制變量的遞增,也可以是遞減。它又稱為循環控制的步長,也就是每次循環,循環變量增長(或減少)的速度。

            for()語句的最后不能有任何符號,需要特別注意。

    例如:我們向控制臺輸出1到10之間的數字。

    /*輸出數字到控制臺*/

    Public class Circle

    {

     Public static void main(String[] args)

     {

       For(int I = 1; I < 10; i++)

       {

         System.out.println(“ ” + i);

       }

     }

    }

    輸出結果:1 2 3 4 5 6 7 8 9 10

            針對于for()循環控制結構,有以下問題請讀者注意:

            1、如果在初始化表達式定義了一個初始化變量,那么該變量的作用域范圍是從循環開始到循環結束;

            2、如果想在循環體外部使用循環計數器的最終結果,應該在循環開始外就聲明。

            3、在同級別的不同for()循環中,可以定義相同名字的變量。

            4、在被包含的for()循環塊內不可以定義相同名字的變量。

            5、for()循環與while循環是完全等價的。

     

    三、逗號運算符

    在Java中逗號運算符的惟一使用場所就是for循環,在初始化循環變量表達式或遞增(遞減)表達式中,我們用一系列逗號分隔不同的語句,這些語句均參與到循環控制中。

    下面用一個程序說明這個問題

    /*逗號運算符*/

    public class CommaOperator

    {

     public static void main(String[] args)

     {

       for(int i = 1, j = i + 10; i < 5; i++, j = i * 3)

       {

        System.out.println(“i =” + i + “; j =” + j);

       }

     }

    }

    輸出結果:

             i = 1; j = 11

             i = 2; j = 6

             i = 3; j = 9

             i = 4; j = 12

            通過這個示例,讀者可以發現初始化變量在開始的時候都是按照初始化表達式進行的,在運算的過程中,都按照步長控制表達式進行。

     

    四、無限循環

            提到無限循環,也就是指沒有判斷表達式的for循環,當程序進入到循環體內的時候,由于沒有判斷表達式來結束正常的循環,使得程序進入到無限循環中,也就是我們平常說的死循環。

    我們通過一個小例子來了解一下無限循環的表現形式:

    /*無限循環控制*/

    public class Unlimited

    {

     public static void main(String[] args)

     {

     for(int i = 1;; i++)

     {

       System.out.println(“i =” + i);

     }

    }

    }

            如果程序進入到無限循環中,程序就不能正常結束了,我們只有手動結束程序的進程。手動結束進程的快捷鍵是Ctrl+C。

    posted on 2007-05-16 15:37 心隨Wǒ動 閱讀(1428) 評論(2)  編輯  收藏

    FeedBack:
    # re: 循環
    2007-05-16 15:44 | 我心依舊
    ^_^for循環你學會了嘛?  回復  更多評論
      
    # re: 循環
    2007-05-16 22:37 | asdf
    還有foreach循環=.=,不過感覺像遍歷了  回復  更多評論
      

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    <2007年5月>
    293012345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    QQ群:9028409
    QQ:29850994
    點擊這里給我發消息

    留言簿(2)

    隨筆檔案

    積分與排名

    • 積分 - 31322
    • 排名 - 1348

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 国产成人毛片亚洲精品| 亚洲精品国产福利在线观看| 亚洲日韩精品无码专区加勒比| 亚洲爆乳无码专区www| xvideos永久免费入口| 99久久99久久精品免费观看| 亚洲av女电影网| 久久久久久夜精品精品免费啦| 亚欧免费一级毛片| 亚洲av网址在线观看| 亚洲黄色免费观看| 亚洲国产人成在线观看| 人妻免费久久久久久久了| 噼里啪啦免费观看高清动漫4| 亚洲男人的天堂久久精品| 最近免费中文字幕大全| 国产亚洲精彩视频| 久久亚洲精品无码播放| 午夜网站在线观看免费完整高清观看 | 国产永久免费高清在线| 成人人观看的免费毛片| 国产精品亚洲lv粉色| 亚洲欧洲国产成人综合在线观看| 国产JIZZ中国JIZZ免费看| 国产免费观看黄AV片| 亚洲另类古典武侠| 四虎影视www四虎免费| 欧洲乱码伦视频免费国产| 亚洲人成人网站色www | 成人免费无遮挡无码黄漫视频| 中文字幕乱码亚洲无线三区| 四虎永久在线精品免费观看地址| 最新久久免费视频| 亚洲午夜电影一区二区三区| 国产18禁黄网站免费观看| 任你躁在线精品免费| 国产午夜亚洲精品| 国产国拍精品亚洲AV片| 一级片在线免费看| 亚洲黄色三级网站| 亚欧色视频在线观看免费|