麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

02-C#入門(循環)

2019-11-14 16:44:17
字體:
來源:轉載
供稿:網友

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

其實流程控制、循環,包括面向對象這些知識,基本所有語言都是相通的,唯一的區別就在于書寫時的格式、規范不一致。而這些方面的差異,又是比較細微的,所以往往在學的時候依靠經驗能很快理解,但過后卻發現并未能使(掌)用(握)。

  • 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是中斷循環體的當次循環(不會退出循環體)。

至于goto,呵呵,暫時讓它見鬼去吧。主要目前沒有遇到它可以合理出現的應用場景,希望高手可以指教。

  • 結語

學好數學很重要啊,編程語言只是實現理論的工(方)具(法),真正的原理還是需要很基礎的理論知識才行。

到此,第4章的學習就算基本完成了。書的每一章結尾都會有練習題和小結知識點,下一篇筆記,就先把練習題做了,再把自己想實現的一個程序寫出來,目的:主要是結合前面學到的知識點,綜合運用,提高熟練度、加深記憶。

小小期待下~~~~


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产精品欧美久久久久一区二区 | 91久久久久久亚洲精品禁果 | 国产大片全部免费看 | 蜜桃一本色道久久综合亚洲精品冫 | av在线1 | 久久千人斩 | 大学生一级毛片在线视频 | 久久国产精| 校花被肉干高h潮不断 | 欧美一级片免费在线观看 | 久久久国产精品免费观看 | 92看片淫黄大片欧美看国产片 | v11av在线视频成人 | 越南一级黄色片 | 成年性羞羞视频免费观看无限 | 国产日韩一区二区三区在线观看 | 18被视频免费观看视频 | 操操影视 | 久久精品小短片 | va毛片| 一级裸体视频 | 中文字幕专区高清在线观看 | 日韩一级免费 | 激情亚洲一区二区三区 | 免费a视频在线观看 | 一级大黄毛片免费观看 | 黄污免费网站 | 看免费av | 韩国三级日本三级香港三级黄 | 亚洲成人免费网站 | 娇妻被各种姿势c到高潮小说 | 福利在线免费视频 | 在线观看免费污视频 | 噜噜噜躁狠狠躁狠狠精品视频 | 草久在线观看视频 | 久久久久一本一区二区青青蜜月 | 超污视频在线看 | 免费日韩片 | 国产女厕一区二区三区在线视 | 精品视频一区二区三区四区 | 无遮挡一级毛片视频 |