2018-11-14循環(huán)結(jié)構(gòu)

循環(huán)結(jié)構(gòu)

要么痛苦的堅(jiān)持游戲結(jié)束 可能會(huì)升級(jí)

要么結(jié)束游戲繼續(xù)的痛苦 可能有遺憾

知識(shí)點(diǎn)

(1) . while

(2) . break語(yǔ)句

(3) . do-while

(4) . for

(5) . foreach

(6) . 程序調(diào)試

一箩绍、 問題

l 實(shí)際生活中的循環(huán):打印100份試卷

l 李四這次考試又粗心了,爸爸讓他寫1000遍“下次考試一定要細(xì)心”.(復(fù)印紙加三根筆)

如何編程實(shí)現(xiàn)上面的問題?

Console.WriteLine("下次考試一定要細(xì)心");

Console.WriteLine("下次考試一定要細(xì)心");

Console.WriteLine("下次考試一定要細(xì)心");

……

二潜的、 While循環(huán)

(一) 語(yǔ)法

while(循環(huán)條件)

{

循環(huán)體;

}

(二) 執(zhí)行過程

程序運(yùn)行到while處,首先判斷while所帶的循環(huán)條件是否成立,如果成立,也就是為true矾屯,則執(zhí)行大括號(hào)中的循環(huán)體,

當(dāng)循環(huán)體執(zhí)行完成一遍后初厚,繼續(xù)回到循環(huán)條件進(jìn)行判斷件蚕,如果成立,則執(zhí)行产禾,如果不成立排作,則跳出while循環(huán)。

每個(gè)循環(huán)都有那么一行代碼亚情,能夠改變循環(huán)條件妄痪,使之終有一天不再成立,如果程序中沒有那么一行代碼能夠改變循環(huán)條件楞件,那么我稱之為這種循環(huán)叫做死循環(huán)衫生。

特點(diǎn):****先判斷裳瘪,再執(zhí)行,有可能一次都不執(zhí)行罪针。

(三) 流程圖

[圖片上傳失敗...(image-276557-1542156274025)]

(四) 注意事項(xiàng)

在寫while循環(huán)的時(shí)候彭羹,一定要分析出循環(huán)體和循環(huán)條件。

(五) 解決實(shí)際問題

int i=0;

while(i<1000)

{

Console.WriteLine(“我下次一定要超越他”);

i++;

}

(六) while循環(huán)的練習(xí)

(1) . 打印10次"歡迎您來(lái)到寧波教育學(xué)院學(xué)習(xí)"

(2) . 求1-100之間的所有整數(shù)和站故,求1-100之間所有偶數(shù)和

int i = 1;

int sum = 0;

while (i <= 100)

{

if (i % 2 == 0)

{

sum += i;//sum=sum+i;

}

i++;

}

Console.WriteLine(sum);

Console.ReadKey();

(3) . 作業(yè)1:輸入班級(jí)人數(shù),然后依次輸入學(xué)員成績(jī)皆怕,計(jì)算班級(jí)學(xué)員的平均成績(jī)和總成績(jī)

Console.WriteLine("請(qǐng)輸入班級(jí)人數(shù)");

int count = Convert.ToInt32(Console.ReadLine());

int i = 0;//聲明一個(gè)循環(huán)變量,記錄循環(huán)的次數(shù)

int sum = 0;//定義總成績(jī)

while (i < count)

{

Console.WriteLine("請(qǐng)輸入第{0}個(gè)學(xué)員的成績(jī)", i + 1);

try

{

int score = Convert.ToInt32(Console.ReadLine());

//將每一個(gè)學(xué)員的成績(jī)累加到總成績(jī)中

sum += score;

i++;

}

catch

{

Console.WriteLine("輸入有誤西篓,請(qǐng)重新輸入");

}

}

Console.WriteLine("{0}個(gè)人的班總成績(jī)是{1}平均成績(jī)是{2}", count, sum, sum / count);

Console.ReadKey();

(4) . 2006年培養(yǎng)學(xué)員80000人愈腾,每年增長(zhǎng)25%,請(qǐng)問按此增長(zhǎng)速度岂津,到哪一年培訓(xùn)學(xué)員人數(shù)將達(dá)到20萬(wàn)人虱黄?

int year = 2006;

double people = 80000;

while (people <= 200000)

{

//每年增長(zhǎng)25%

people *= 1.25;

year++;

}

Console.WriteLine("到{0}年的時(shí)候,人數(shù)將達(dá)到20萬(wàn)",year);

Console.ReadKey();

(5) . 作業(yè)2:編寫程序吮成,估計(jì)一個(gè)職員在65歲退休之前能賺到多少錢橱乱。用年齡和超始薪水作為輸入,并假設(shè)職員每年工資增長(zhǎng)5%粱甫。

/**

  • 估計(jì)一個(gè)職員在65歲退休之前能賺到多少錢泳叠。

  • 用年齡和超始薪水作為輸入,并假設(shè)職員每年工資增長(zhǎng)5%

  • 循環(huán)條件:小于等65

  • 循環(huán)體:工資之和

  • 每年增加5%

  • */

Console.WriteLine("請(qǐng)輸入你現(xiàn)在的工資");

string str_salar = Console.ReadLine();

Console.WriteLine("請(qǐng)輸入你的年齡");

string str_age = Console.ReadLine();

double salar=0;

int age = 0;

double sum = salar;

bool flag = true;

try

{

salar = Convert.ToDouble(str_salar);

age = Convert.ToInt32(str_age);

flag = true;

}

catch

{

Console.WriteLine("你輸入的格式錯(cuò)誤");

flag = false;

}

if (flag)

{

while (age <= 65)

{

salar *= 1.05;

sum += salar;

age++;

}

Console.WriteLine("你到65歲退休之前的工資和是:{0}", sum);

}

Console.WriteLine("程序執(zhí)行完畢");

Console.ReadKey();

三茶宵、 break 關(guān)鍵

(一) 作用

1)危纫、跳出switch-case語(yǔ)句。

2)乌庶、跳出循環(huán)

break單獨(dú)放到循環(huán)中沒意義种蝶,一般跟if配合著使用,表示當(dāng)滿足某個(gè)條件的時(shí)候瞒大,跳出循環(huán)螃征。

(二) 演示:

int i = 0;

while (i < 10)

{

Console.WriteLine("歡迎來(lái)到寧波教育學(xué)院學(xué)習(xí)");

i++;

break;//跳出循環(huán)

}

Console.ReadKey();

(三) 練習(xí):提示用戶輸入用戶名和密碼 admin 888888 最多讓用戶輸入3次 如果3次都不會(huì) 則退出登錄程序

/**

  • 提示用戶輸入用戶名和密碼 admin 888888

  • 最多讓用戶輸入3次 如果3次都不會(huì) 則退出登錄程序

  • 循環(huán)條件:用戶名和密碼都不正確

  • 循環(huán)體:用戶輸入用戶名和密碼

  • */

Console.WriteLine("請(qǐng)輸入用戶名");

string userName = Console.ReadLine();

Console.WriteLine("請(qǐng)輸入密碼");

string password = Console.ReadLine();

int num = 1; //用戶記錄用戶輸入的次數(shù)

while (("admin"!=userName) & ("88888"!=password))

{

Console.WriteLine("請(qǐng)?jiān)佥斎胗脩裘?);

userName = Console.ReadLine();

Console.WriteLine("請(qǐng)?jiān)佥斎朊艽a");

password = Console.ReadLine();

if (num == 2)

{

break;

}

num++;

}

if(num == 2){

Console.WriteLine("你已經(jīng)輸入錯(cuò)誤三次,請(qǐng)等100年后再來(lái)");

}

else

{

Console.WriteLine("登錄成功");

}

Console.ReadKey();

四透敌、 do-while循環(huán)

(一) 實(shí)際場(chǎng)景

明天小蘭就要登臺(tái)演出了,老師說再把明天的演出的歌曲唱一遍,如果滿意,小蘭就可以回家了.否則就需要再練習(xí)一遍,直到老師滿意為止.(y/n)

(二) while or do-while ?

1. while循環(huán)的特點(diǎn)

特點(diǎn):先判斷盯滚,再執(zhí)行,有可能一次都不執(zhí)行酗电。

2. do-while循環(huán)的特點(diǎn)

特點(diǎn):先執(zhí)行魄藕,再判斷,最少執(zhí)行一遍循環(huán)體顾瞻。

(三) do-while循環(huán)的語(yǔ)法

do

{

循環(huán)體;

}while(循環(huán)條件);

(四) 執(zhí)行過程

首先執(zhí)行do中的循環(huán)體泼疑,執(zhí)行完成后,去判斷循環(huán)條件是否成立,

如果成立退渗,則繼續(xù)回到do中執(zhí)行循環(huán)體移稳,

如果不成立,則跳出do-while循環(huán)会油。

(五) 流程圖

[圖片上傳失敗...(image-173e8d-1542156274021)]

(六) 解決問題

1. while解決

//循環(huán)體:小蘭唱一遍个粱,問老師,老師回答

//循環(huán)條件:老師不滿意

Console.WriteLine("老師翻翩,我唱的你滿意么都许?");

string answer = Console.ReadLine();

while (answer == "no")

{

Console.WriteLine("老師,我再唱一遍嫂冻,你滿意么胶征?");

answer = Console.ReadLine();

}

Console.WriteLine("OK,放學(xué)回家");

Console.ReadKey();

2. do-while解決

string answer = "";

do

{

Console.WriteLine("老師桨仿,我唱的這一遍你滿意么睛低?");

answer = Console.ReadLine();

} while (answer == "no");

Console.WriteLine("Ok,放學(xué)回家");

Console.ReadKey();

(七) 練習(xí)

1. 要求用戶輸入用戶名和密碼服傍,只要不是admin钱雷、888888就一直提示用戶名或密碼錯(cuò)誤,請(qǐng)重新輸入

string name = "";

string pwd = "";

//循環(huán)體:輸入用戶名和密碼 判斷

//循環(huán)條件:輸入錯(cuò)誤

do

{

Console.WriteLine("請(qǐng)輸入用戶名");

name = Console.ReadLine();

Console.WriteLine("請(qǐng)輸入密碼");

pwd = Console.ReadLine();

if (name != "admin" || pwd != "888888")

{

Console.WriteLine("用戶名或密碼錯(cuò)誤");

}

} while (name != "admin" || name != "888888");

Console.ReadKey();

2. 不斷要求用戶輸入一個(gè)數(shù)字,然后打印這個(gè)數(shù)字的二倍吹零,當(dāng)用戶輸入q的時(shí)候程序退出

循環(huán)體:提示用戶輸入數(shù)字 轉(zhuǎn)換 打印這個(gè)數(shù)字的2倍

循環(huán)條件:輸入的不能是q

string strNumber = "";//存儲(chǔ)的用戶的輸入

do

{

Console.WriteLine("請(qǐng)輸入數(shù)字");

strNumber = Console.ReadLine();//數(shù)字 q 亂七八糟

if (strNumber != "q")//數(shù)字 亂七八糟

{

try

{

int number = Convert.ToInt32(strNumber);

Console.WriteLine("這個(gè)數(shù)字的2倍是{0}", number * 2);

}

catch//輸入的是亂七八糟

{

Console.WriteLine("輸入有誤罩抗,請(qǐng)重新輸入");

}

}

else//==q

{

Console.WriteLine("你輸入的是q,程序退出2右巍L椎佟!");

}

} while (strNumber != "q");

Console.ReadKey();

3. 不斷要求用戶輸入一個(gè)數(shù)字(假定用戶輸入的都是正整數(shù))阱扬,當(dāng)用戶輸入end的時(shí)候顯示剛才輸入的數(shù)字中的最大值

//循環(huán)體:提示用戶輸入一個(gè)數(shù)字 接收 轉(zhuǎn)換 比較的過程

//循環(huán)條件:輸入的不能是end

string strNumber = "";

int max = 0;//用來(lái)存儲(chǔ)最大值

while (strNumber != "end")

{

Console.WriteLine("請(qǐng)輸入一個(gè)數(shù)字泣懊,輸入end伸辟,我們將顯示你輸入的數(shù)字中的最大值");

strNumber = Console.ReadLine();//數(shù)字 end 亂七八糟

if (strNumber != "end")

{

try

{

int number = Convert.ToInt32(strNumber);

if (number > max)

{

max = number;

}

}

catch

{

Console.WriteLine("輸入有誤麻惶,請(qǐng)重新輸入");

}

}

else//輸入的是end

{

Console.WriteLine("您剛才輸入的數(shù)字中最大值是{0}",max);

}

}

Console.ReadKey();

tusr53I??D

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市信夫,隨后出現(xiàn)的幾起案子窃蹋,更是在濱河造成了極大的恐慌,老刑警劉巖静稻,帶你破解...
    沈念sama閱讀 206,602評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件警没,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡振湾,警方通過查閱死者的電腦和手機(jī)杀迹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)押搪,“玉大人树酪,你說我怎么就攤上這事浅碾。” “怎么了续语?”我有些...
    開封第一講書人閱讀 152,878評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵垂谢,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我疮茄,道長(zhǎng)滥朱,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,306評(píng)論 1 279
  • 正文 為了忘掉前任力试,我火速辦了婚禮徙邻,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘畸裳。我一直安慰自己鹃栽,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,330評(píng)論 5 373
  • 文/花漫 我一把揭開白布躯畴。 她就那樣靜靜地躺著民鼓,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蓬抄。 梳的紋絲不亂的頭發(fā)上丰嘉,一...
    開封第一講書人閱讀 49,071評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音嚷缭,去河邊找鬼饮亏。 笑死扮碧,一個(gè)胖子當(dāng)著我的面吹牛倔幼,可吹牛的內(nèi)容都是我干的绽族。 我是一名探鬼主播沛慢,決...
    沈念sama閱讀 38,382評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼确丢,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼闲礼!你這毒婦竟也來(lái)了浸锨?” 一聲冷哼從身側(cè)響起榨咐,我...
    開封第一講書人閱讀 37,006評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤百侧,失蹤者是張志新(化名)和其女友劉穎砰识,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體佣渴,經(jīng)...
    沈念sama閱讀 43,512評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡辫狼,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,965評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了辛润。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片膨处。...
    茶點(diǎn)故事閱讀 38,094評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出真椿,到底是詐尸還是另有隱情秦叛,我是刑警寧澤,帶...
    沈念sama閱讀 33,732評(píng)論 4 323
  • 正文 年R本政府宣布瀑粥,位于F島的核電站挣跋,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏狞换。R本人自食惡果不足惜避咆,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,283評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望修噪。 院中可真熱鬧查库,春花似錦、人聲如沸黄琼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)脏款。三九已至围苫,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間撤师,已是汗流浹背剂府。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留剃盾,地道東北人腺占。 一個(gè)月前我還...
    沈念sama閱讀 45,536評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像痒谴,于是被迫代替她去往敵國(guó)和親衰伯。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,828評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • 知識(shí)點(diǎn): 注:int類型默認(rèn)32位有大小范圍 且第一位為符號(hào)位 0 為正 1 為負(fù) 8.4作業(yè) A:1积蔚、風(fēng)力預(yù)警系...
    cGunsNRoses閱讀 1,086評(píng)論 0 0
  • 1.單分支語(yǔ)句if if語(yǔ)句的表達(dá)式:if(條件){語(yǔ)句塊1意鲸;語(yǔ)句塊2}//如果我們if語(yǔ)句塊只有一個(gè)語(yǔ)句,那么...
    Unity開發(fā)閱讀 1,083評(píng)論 1 1
  • 循環(huán)結(jié)構(gòu) 要么痛苦的堅(jiān)持游戲結(jié)束 可能會(huì)升級(jí) 要么結(jié)束游戲繼續(xù)的痛苦 可能有遺憾 知識(shí)點(diǎn) (1) . whil...
    拾起_518閱讀 182評(píng)論 0 0
  • 在C語(yǔ)言中,五種基本數(shù)據(jù)類型存儲(chǔ)空間長(zhǎng)度的排列順序是: A)char B)char=int<=float C)ch...
    夏天再來(lái)閱讀 3,325評(píng)論 0 2
  • 當(dāng)下 我坐在這里 接受風(fēng)兒的邀請(qǐng) 聽那萬(wàn)千枝葉的歌唱 聽鳥兒歡快的啼鳴 一支紅葉指向頭頂?shù)脑凭碓剖?觀陽(yáng)光穿透枝葉...
    幸福的李慧閱讀 253評(píng)論 0 1