欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

c#入門之循環(huán)語句使用詳解(for循環(huán)、do/while)

 更新時間:2014年04月15日 11:12:42   作者:  
這篇文章主要介紹了c#入門之循環(huán)語句使用詳解,有for循環(huán)和do/while的示例,需要的朋友可以參考下

記得第一次學(xué)編程的時候,就聽說過一句話:“新手學(xué)習(xí)和掌握一門編程語言是很容易的,但是如果你學(xué)會了某種編程語言,再去學(xué)習(xí)新的語言,就很難掌握了”,現(xiàn)在深深地感受到了這方面的阻力。

其實(shí)流程控制、循環(huán),包括面向?qū)ο筮@些知識,基本所有語言都是相通的,唯一的區(qū)別就在于書寫時的格式、規(guī)范不一致。而這些方面的差異,又是比較細(xì)微的,所以往往在學(xué)的時候依靠經(jīng)驗(yàn)?zāi)芎芸炖斫?,但過后卻發(fā)現(xiàn)并未能使(掌)用(握)。

do / while

循環(huán)的意義,其實(shí)就是重復(fù)執(zhí)行語句,當(dāng)然,還會有相應(yīng)的條件判斷,不然就成死循環(huán)了。do循環(huán)其實(shí)和while循環(huán)的區(qū)別:do循環(huán)會先執(zhí)行一次循環(huán)體,才繼續(xù)判斷;而while循環(huán)會先判斷,再決定是否執(zhí)行循環(huán)體:

復(fù)制代碼 代碼如下:

double benJ, liV, muB, liX;
int needY = 0;
Console.WriteLine("請輸入您的存款數(shù)額:");
benJ = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("請輸入存款利率:");
// +1,計算后的結(jié)果則為本金+利息,如只需要利息,則去掉+1。學(xué)好數(shù)學(xué)很重要啊
liX = Convert.ToDouble(Console.ReadLine()) / 100.0;
liV = 1 + liX;
liX = benJ * liX;
Console.WriteLine("請輸入預(yù)期收益額:");
do
{
    muB = Convert.ToDouble(Console.ReadLine());
    if (muB <= benJ)
    {
        Console.WriteLine("預(yù)期收益額低于本金,請輸入高于本金的收益額:");
    }
} while (muB <= benJ);
while (benJ < muB)
{
    benJ *= liV;
    ++needY;
}
Console.WriteLine("每年利息 {3},存入 {0} year{4},您的本金和利息之和 {1} 能夠達(dá)到預(yù)期的目標(biāo) {2}。", needY, benJ, muB, liX, needY > 1 ? "s" : "");
if (needY == 0) Console.WriteLine("高起點(diǎn),低目標(biāo),其實(shí),您根本沒必要存款到銀行~");
Console.ReadKey();

這兒遇到個很不錯的do循環(huán)的應(yīng)用場景:使用do循環(huán)判斷用戶輸入的內(nèi)容是否滿足條件,如果沒有,則重復(fù)執(zhí)行,直到滿足條件才退出循環(huán)(do循環(huán)的while結(jié)尾處需要添加 ; 號)。示例還應(yīng)用了前面學(xué)習(xí)的三元運(yùn)算符 ? ,根據(jù)條件判斷結(jié)果,格式前面的字符串。

for

for循環(huán)比較適合于指定次數(shù)的應(yīng)用,在使用時,需初始化一個作為計數(shù)器的變量值(可放在for語句中聲明,但在循環(huán)體外就不能訪問該計數(shù)器變量了):

復(fù)制代碼 代碼如下:

for (int i = 1; i <= 10; i++)
{
    Console.WriteLine("{0}", i);
}

聲明了for的計數(shù)器變量后,使用 ; 號隔開,接著添加條件判斷的表達(dá)式(應(yīng)涉及計數(shù)器變量) i <= 10,繼續(xù)使用 ; 號隔開,添加對計數(shù)器變量的操作 i++(不用 ; 號結(jié)尾)。嘗試把i++去掉,放在循環(huán)體內(nèi),也是可行的。

書上舉了一個例子,用for循環(huán)打印出mandelbrot集,呵呵,雖然看懂代碼的邏輯結(jié)構(gòu)了,但是算法完全看不懂,就不貼上來了。不過,還是延伸閱讀了一下mandelbrot集的創(chuàng)始人:本華·曼德博,以及一個數(shù)學(xué)構(gòu)造:碎形(fractal)。花了點(diǎn)時間閱讀了一些資料,感謝前人,致敬。

當(dāng)然,示例的重要性不言而喻,試著回想當(dāng)年學(xué)basic寫的《九九乘法表》,在C#中簡單做了一個。原理是相同的,主要注意細(xì)節(jié):

復(fù)制代碼 代碼如下:

int i, k;
for(i = 1; i < 10; i++)
{
    Console.Write("{0}: ", i);
    for(k = 1;k <= i; k++)
    {
        Console.Write("{0}x{1}={2} " ,k, i, i * k);
    }
    Console.WriteLine("\n");
}
Console.ReadKey();

這種for循環(huán)嵌套的方式,在實(shí)現(xiàn)橫、縱向循環(huán)(輸出、控制)是很有用的,之前在做excel VBA的時候,經(jīng)常會用到。

循環(huán)的中斷
以前一直沒記住,倒底是該用break還是用continue,不過下面這個例子,倒是很形象地描述清楚了:

復(fù)制代碼 代碼如下:

int i = 1;
while (i <= 10)
{
    if (i == 6)
        break;
    Console.WriteLine("{0}", i++);
}
for (i = 1; i <= 10; i++)
{
    if ( i % 2 == 0)
        continue;
    Console.WriteLine("{0}",i);
}
Console.ReadKey();

其實(shí)兩個都可以叫中斷,只不過:break是中斷當(dāng)前的循環(huán)體(退出循環(huán)體),而continue是中斷循環(huán)體的當(dāng)次循環(huán)(不會退出循環(huán)體)。

相關(guān)文章

最新評論