官术网_书友最值得收藏!

3.4 嵌套語句

嵌套語句用于在選擇或循環(huán)語句塊中加入選擇或循環(huán)語句,將內(nèi)部加入的選擇或循環(huán)語句作為一個(gè)整體,有以下幾種形式:

選擇語句嵌套 在選擇語句塊中使用選擇語句。

循環(huán)語句嵌套 在循環(huán)語句塊中使用循環(huán)語句。

多重混合語句嵌套 在選擇或循環(huán)語句塊中使用多個(gè)選擇或循環(huán)語句。

3.4.1 選擇語句嵌套

選擇語句以if else語句為例,在if或else后的語句塊中,使用另一個(gè)條件語句,如獲取一個(gè)年份是否是閏年,如練習(xí)3-11所示。

【練習(xí)3-11】

定義整型變量year為年份,接收用戶對(duì)年份的輸入數(shù)據(jù)。根據(jù)year的值,判斷該年份是否是閏年。閏年的判斷條件有兩個(gè),如下所示。

□ 年份是整百數(shù)的,先除去100后,能被4整除的為閏年。

□ 年份不是整百數(shù)的,能被4整除的為閏年。

使用語句如下:

Console.WriteLine("請(qǐng)輸入年份:");
int year = Convert.ToInt32(Console.ReadLine());
if (year % 100 == 0)
{
    year = year / 100;
    if (year % 4 == 0)
    { Console.WriteLine("年份 {0} 是 閏年", year); }
    else
    { Console.WriteLine("年份 {0} 不是 閏年", year); }
}
else
{
    if (year % 4 == 0)
    { Console.WriteLine("年份 {0} 是 閏年", year); }
    else
    { Console.WriteLine("年份 {0} 不是 閏年", year); }
}

練習(xí)3-11中,首先判斷年份是否能被100整除,能的話將年份除以100再與4取余數(shù);若年份不能被100整除,直接將年份與4取余數(shù),并根據(jù)余數(shù)判斷年份是否是閏年。

分別使用2012和2013來驗(yàn)證程序,其運(yùn)行結(jié)果如圖3-17和圖3-18所示。

圖3-17 驗(yàn)證2012是否是閏年

圖3-18 驗(yàn)證2013是否是閏年

3.4.2 循環(huán)語句嵌套

在循環(huán)語句塊使用循環(huán)語句是常用的,以for循環(huán)為例,若想輸出一行數(shù)據(jù)或者一列數(shù)據(jù),直接使用for循環(huán)即可,但若想輸出幾行幾列的數(shù)據(jù),只能在循環(huán)內(nèi)部使用循環(huán)。

例如,2013年4月1日為周一,按一行一周輸出4月份日期,則每一行是一個(gè)循環(huán),在一行結(jié)束后換行,進(jìn)行下一個(gè)循環(huán),如練習(xí)3-12所示。

【練習(xí)3-12】

定義整型變量day表示日期,輸出4月份日期。

使用嵌套語句如下:

int day;
for (day = 1; day < 31; )
{
    for (int i = 0; (i < 7)&&(day<31); i++)
    {
        Console.Write(day);
        Console.Write(" ");
        day++;
    }
    Console.Write("\n");
}

運(yùn)行結(jié)果如圖3-19所示。練習(xí)3-12中,由于day等于30時(shí)還會(huì)進(jìn)行內(nèi)部循環(huán),在內(nèi)部循環(huán)中day將大于30并進(jìn)行下去,因此在內(nèi)部循環(huán)中需要添加條件(day<31)。否則執(zhí)行結(jié)果如圖3-20所示。

圖3-19 4月份日期

圖3-20 無意義日期

3.4.3 混合語句嵌套

嵌套不僅可以用于選擇語句之間或循環(huán)語句之間,選擇與循環(huán)之間的嵌套同樣常用。復(fù)雜的功能嘗試用多重的嵌套,一個(gè)循環(huán)內(nèi)出現(xiàn)多個(gè)循環(huán)和選擇語句。

當(dāng)程序使用多重嵌套時(shí),執(zhí)行時(shí)將循環(huán)和選擇語句塊由內(nèi)到外作為整體進(jìn)行。如圖3-19所示,由于日期數(shù)字有一位的,有兩位的,因此數(shù)據(jù)看起來比較亂。若在一位數(shù)字的前面加一個(gè)空格,即可使日期整齊、便于查看,如練習(xí)3-13所示。

【練習(xí)3-13】

借助練習(xí)3-12的示例,在輸出日期時(shí)判斷該日期是否小于10,若小于10則為一位數(shù)字,需要在數(shù)字前輸出空格,否則不輸出空格,代碼如下:

int day;
for (day = 1; day < 31; )
{
    for (int i = 0; (i < 7) && (day < 31); i++)
    {
        if (day < 10)
        {
            Console.Write(" {0}", day);
        }
        else
        {
            Console.Write(day);
        }
        Console.Write(" ");
        day++;
    }
    Console.Write("\n");
}

練習(xí)3-13是多重嵌套的例子,在for循環(huán)內(nèi)有for循環(huán),內(nèi)部的for循環(huán)內(nèi)又有選擇語句。分析這段代碼時(shí),將最里面的if語句塊看作一個(gè)整體,接著將內(nèi)部的for循環(huán)作為一個(gè)整體,執(zhí)行外部循環(huán)。運(yùn)行練習(xí)3-13,其效果如圖3-21所示。

圖3-21 日期格式化

主站蜘蛛池模板: 上杭县| 海口市| 东乡| 皮山县| 特克斯县| 鹿邑县| 绥江县| 仙游县| 班戈县| 报价| 孝感市| 收藏| 伊春市| 隆昌县| 图木舒克市| 呼伦贝尔市| 文成县| 汶上县| 北流市| 庆城县| 故城县| 辛集市| 施秉县| 通辽市| 达拉特旗| 靖边县| 大荔县| 开江县| 滨州市| 翁牛特旗| 阿瓦提县| 施秉县| 黄山市| 凌海市| 特克斯县| 武宁县| 库伦旗| 贵阳市| 那曲县| 吉安县| 黔西县|