<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語(yǔ)言同其它大多數(shù)的編程語(yǔ)言一樣,也存在有控制循環(huán)的編程結(jié)構(gòu),它分為不確定循環(huán)和確定循環(huán)兩種類(lèi)型。

    一、不確定循環(huán)

            所謂不確定循環(huán),也就是我們不能確定循環(huán)所要執(zhí)行的次數(shù),執(zhí)行的次數(shù)是根據(jù)程序中參數(shù)的變化自動(dòng)控制的。

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

           1) while

           它的英語(yǔ)意思就是“當(dāng)”,它在循環(huán)控制中也可以這樣理解,它的語(yǔ)法格式是:

    while(條件)

    {

     目的一;

     目的二;

    ……

    }

            換成中文的含義就是“當(dāng)條件為真時(shí),就執(zhí)行循環(huán)體,當(dāng)條件為假時(shí),就不執(zhí)行循環(huán)體。”

            下面我們編寫(xiě)一個(gè)比較有意思的程序來(lái)說(shuō)明這個(gè)結(jié)構(gòu):

            我的同事小李自從參加工作以后,每個(gè)月都要交納一定的住房基金,以準(zhǔn)備買(mǎi)房子。現(xiàn)在他每個(gè)月工資是2000元,以后每年按10%的比例增加,其中工資的5%是用來(lái)交納住房基金的,他想知道多少年后,他可以有20萬(wàn)元住房基金。

    /*while循環(huán)控制結(jié)構(gòu)的測(cè)試*/

    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);

     }

    }

    輸出結(jié)果:the total years is :32

              The total fund is :218332.10994930082

    程序分析:

            在開(kāi)始的時(shí)候,我們并不知道需要多少年,但我們知道它的結(jié)束條件,那就是基金需要達(dá)到20萬(wàn)元。我們以它作為程序結(jié)束的條件,進(jìn)行循環(huán)。通過(guò)這個(gè)程序我們可以總結(jié)出以下幾點(diǎn):

           1、循環(huán)開(kāi)始執(zhí)行的條件是為真;

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

           3、循環(huán)判斷條件為假時(shí),程序中止循環(huán)。

     

    2)do/while

    我們先把前面的程序做一個(gè)改造,來(lái)比較一下兩個(gè)程序的區(qū)別:

    /*while循環(huán)控制結(jié)構(gòu)的測(cè)試*/

    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);

     }

    }

    輸出結(jié)果:the total years is :32

              the total fund is :218332.10994930082

    我們?cè)倏磧蓚€(gè)小程序,并對(duì)比一下他們的輸出:

    /*測(cè)試不確定循環(huán)的兩種表現(xiàn)形式的區(qū)別*/

    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);

    }

    }

    輸出結(jié)果:the value i is:3

     

    /*測(cè)試不確定循環(huán)的兩種表現(xiàn)形式的區(qū)別*/

    public class DifferTest2

    {

    public static void main(String[] args)

    {

     Int i = 2;

     while (i < 2)

     {

       i++;

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

     }

    }

    }

             這個(gè)沒(méi)有任何輸出結(jié)果,這兩種形式是有一定差別的:while語(yǔ)句是先進(jìn)行條件判斷,再進(jìn)行循環(huán)體的處理;do/while語(yǔ)句是先進(jìn)行循環(huán)體的處理再判斷條件語(yǔ)句,也就是在執(zhí)行判斷之前已經(jīng)將循環(huán)體內(nèi)的邏輯處理了一遍。

     

    二、確定循環(huán)

             for()循環(huán)是最簡(jiǎn)單的循環(huán)語(yǔ)句,它可以通過(guò)計(jì)數(shù)器或在每次循環(huán)后修改某個(gè)類(lèi)似于計(jì)數(shù)器變量的值來(lái)控制它。它的格式如下:

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

    {

    執(zhí)行語(yǔ)句;

    }

            初始化表達(dá)式:它是用來(lái)設(shè)定循環(huán)控制變量的初始值,也就是循環(huán)的起點(diǎn)。

           判斷表達(dá)式:用來(lái)判斷循環(huán)是否結(jié)束的表達(dá)式,也就是循環(huán)的終點(diǎn)。程序循環(huán)是否持續(xù)進(jìn)行由判斷表達(dá)式?jīng)Q定;通常判斷表達(dá)式是關(guān)系表達(dá)式,當(dāng)關(guān)系表達(dá)式的值為真是,程序繼續(xù)進(jìn)行循環(huán),當(dāng)關(guān)系表達(dá)式的值為假時(shí),循環(huán)結(jié)束。

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

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

    例如:我們向控制臺(tái)輸出1到10之間的數(shù)字。

    /*輸出數(shù)字到控制臺(tái)*/

    Public class Circle

    {

     Public static void main(String[] args)

     {

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

       {

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

       }

     }

    }

    輸出結(jié)果:1 2 3 4 5 6 7 8 9 10

            針對(duì)于for()循環(huán)控制結(jié)構(gòu),有以下問(wèn)題請(qǐng)讀者注意:

            1、如果在初始化表達(dá)式定義了一個(gè)初始化變量,那么該變量的作用域范圍是從循環(huán)開(kāi)始到循環(huán)結(jié)束;

            2、如果想在循環(huán)體外部使用循環(huán)計(jì)數(shù)器的最終結(jié)果,應(yīng)該在循環(huán)開(kāi)始外就聲明。

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

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

            5、for()循環(huán)與while循環(huán)是完全等價(jià)的。

     

    三、逗號(hào)運(yùn)算符

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

    下面用一個(gè)程序說(shuō)明這個(gè)問(wèn)題

    /*逗號(hào)運(yùn)算符*/

    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);

       }

     }

    }

    輸出結(jié)果:

             i = 1; j = 11

             i = 2; j = 6

             i = 3; j = 9

             i = 4; j = 12

            通過(guò)這個(gè)示例,讀者可以發(fā)現(xiàn)初始化變量在開(kāi)始的時(shí)候都是按照初始化表達(dá)式進(jìn)行的,在運(yùn)算的過(guò)程中,都按照步長(zhǎng)控制表達(dá)式進(jìn)行。

     

    四、無(wú)限循環(huán)

            提到無(wú)限循環(huán),也就是指沒(méi)有判斷表達(dá)式的for循環(huán),當(dāng)程序進(jìn)入到循環(huán)體內(nèi)的時(shí)候,由于沒(méi)有判斷表達(dá)式來(lái)結(jié)束正常的循環(huán),使得程序進(jìn)入到無(wú)限循環(huán)中,也就是我們平常說(shuō)的死循環(huán)。

    我們通過(guò)一個(gè)小例子來(lái)了解一下無(wú)限循環(huán)的表現(xiàn)形式:

    /*無(wú)限循環(huán)控制*/

    public class Unlimited

    {

     public static void main(String[] args)

     {

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

     {

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

     }

    }

    }

            如果程序進(jìn)入到無(wú)限循環(huán)中,程序就不能正常結(jié)束了,我們只有手動(dòng)結(jié)束程序的進(jìn)程。手動(dòng)結(jié)束進(jìn)程的快捷鍵是Ctrl+C。

    posted on 2007-05-16 15:37 心隨Wǒ動(dòng) 閱讀(1429) 評(píng)論(2)  編輯  收藏

    FeedBack:
    # re: 循環(huán)
    2007-05-16 15:44 | 我心依舊
    ^_^for循環(huán)你學(xué)會(huì)了嘛?  回復(fù)  更多評(píng)論
      
    # re: 循環(huán)
    2007-05-16 22:37 | asdf
    還有foreach循環(huán)=.=,不過(guò)感覺(jué)像遍歷了  回復(fù)  更多評(píng)論
      

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    <2007年5月>
    293012345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    QQ群:9028409
    QQ:29850994
    點(diǎn)擊這里給我發(fā)消息

    留言簿(2)

    隨筆檔案

    積分與排名

    • 積分 - 31341
    • 排名 - 1348

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 亚洲精品无码你懂的网站| 国产黄色免费观看| 四虎影在线永久免费观看| 麻豆91免费视频| 亚洲AV天天做在线观看| 夜夜嘿视频免费看| 视频免费在线观看| 亚洲色大情网站www| 亚洲啪啪综合AV一区| 久久久久免费看黄A片APP| 国产高潮久久免费观看| 亚洲午夜电影在线观看高清| 亚洲AV无码一区二区三区在线观看| 国产成人AV片无码免费| 亚洲国产午夜精品理论片在线播放 | 亚洲AV午夜福利精品一区二区| 免费观看无遮挡www的小视频| 亚洲AV无码乱码在线观看裸奔| 免费观看AV片在线播放| 久青草国产免费观看| 亚洲jjzzjjzz在线观看| 成人黄色免费网址| 亚洲综合伊人制服丝袜美腿| 亚洲视频在线一区二区| 毛片免费观看网站| 美女内射无套日韩免费播放| a级毛片免费观看网站| 亚洲国产日韩视频观看| 午夜亚洲国产理论秋霞| 久久亚洲中文字幕精品一区四| 成人免费视频88| 亚洲精品国产免费| 国产在线国偷精品免费看| 亚洲Av永久无码精品黑人| 亚洲国产成人va在线观看网址| 亚洲大尺度无码专区尤物| 日本中文一区二区三区亚洲| 免费中文熟妇在线影片| 18禁美女裸体免费网站| 野花香高清视频在线观看免费 | 亚洲日本一线产区和二线产区对比|