c#入門之輪回語句應用詳解(for輪回、do/while)。本站提示廣大學習愛好者:(c#入門之輪回語句應用詳解(for輪回、do/while))文章只能為提供參考,不一定能成為您想要的結果。以下是c#入門之輪回語句應用詳解(for輪回、do/while)正文
記得第一次學編程的時刻,就據說過一句話:“老手進修和控制一門編程說話是很輕易的,然則假如你學會了某種編程說話,再去進修新的說話,就很難控制了”,如今深深地感觸感染到了這方面的阻力。
其實流程掌握、輪回,包含面向對象這些常識,根本一切說話都是相通的,獨一的差別就在於書寫時的格局、標准紛歧致。而這些方面的差別,又是比擬纖細的,所以常常在學的時刻依附經歷能很快懂得,但事後卻發明並未能使(掌)用(握)。
do / while
輪回的意義,其實就是反復履行語句,固然,還會有響應的前提斷定,否則就成逝世輪回了。do輪回其實和while輪回的差別:do輪回會先履行一次輪回體,才持續斷定;而while輪回會先斷定,再決議能否履行輪回體:
double benJ, liV, muB, liX;
int needY = 0;
Console.WriteLine("請輸出您的存款數額:");
benJ = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("請輸出存款利率:");
// +1,盤算後的成果則為本金+利錢,如只須要利錢,則去失落+1。學好數學很主要啊
liX = Convert.ToDouble(Console.ReadLine()) / 100.0;
liV = 1 + liX;
liX = benJ * liX;
Console.WriteLine("請輸出預期收益額:");
do
{
muB = Convert.ToDouble(Console.ReadLine());
if (muB <= benJ)
{
Console.WriteLine("預期收益額低於本金,請輸出高於本金的收益額:");
}
} while (muB <= benJ);
while (benJ < muB)
{
benJ *= liV;
++needY;
}
Console.WriteLine("每一年利錢 {3},存入 {0} year{4},您的本金和利錢之和 {1} 可以或許到達預期的目的 {2}。", needY, benJ, muB, liX, needY > 1 ? "s" : "");
if (needY == 0) Console.WriteLine("高終點,低目的,其實,您基本沒需要存款到銀行~");
Console.ReadKey();
這兒碰到個很不錯的do輪回的運用場景:應用do輪回斷定用戶輸出的內容能否知足前提,假如沒有,則反復履行,直到知足前提才加入輪回(do輪回的while開頭處須要添加 ; 號)。示例還運用了後面進修的三元運算符 ? ,依據前提斷定成果,格局後面的字符串。
for
for輪回比擬合適於指定次數的運用,在應用時,需初始化一個作為計數器的變量值(可放在for語句中聲明,但在輪回體外就不克不及拜訪該計數器變量了):
for (int i = 1; i <= 10; i++)
{
Console.WriteLine("{0}", i);
}
聲清楚明了for的計數器變量後,應用 ; 號離隔,接著添加前提斷定的表達式(應觸及計數器變量) i <= 10,持續應用 ; 號離隔,添加對計數器變量的操作 i++(不消 ; 號開頭)。測驗考試把i++去失落,放在輪回體內,也是可行的。
書上舉了一個例子,用for輪回打印出mandelbrot集,呵呵,固然看懂代碼的邏輯構造了,然則算法完整看不懂,就不貼下去了。不外,照樣延長浏覽了一下mandelbrot集的開創人:本華·曼德博,和一個數學結構:碎形(fractal)。花了點時光浏覽了一些材料,感激後人,致敬。
固然,示例的主要性不問可知,試著回憶昔時學basic寫的《九九乘法表》,在C#中簡略做了一個。道理是雷同的,重要留意細節:
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輪回嵌套的方法,在完成橫、縱向輪回(輸入、掌握)是很有效的,之前在做excel VBA的時刻,常常會用到。
輪回的中止
之前一向沒記住,倒底是該用break照樣用continue,不外上面這個例子,卻是很抽象地描寫清晰了:
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();
其實兩個都可以叫中止,只不外:break是中止以後的輪回體(加入輪回體),而continue是中止輪回體確當次輪回(不會加入輪回體)。