freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

★第05章c的流程控制語句(編輯修改稿)

2025-02-09 07:54 本頁面
 

【文章內(nèi)容簡介】 串: \n。 do{ (c)。 coutc。 }while(c!=39。\n39。)。 } 從例 ,本例用 do?while 語句時,程序最簡,其次為 for語句,再次為 while語句。 循環(huán)的嵌套及其應(yīng)用 ?循環(huán)的嵌套:循環(huán)的內(nèi)嵌語句也可以是循環(huán)語句。 ?例 輸出 1000以內(nèi)所有完數(shù)?!巴陻?shù)”是指與其因子之和相等的數(shù)。例如 6=1+ 2+ 3,即 6是完數(shù)。輸出完數(shù)按如下形式,例如,對于完數(shù) 6,應(yīng)顯示: 6=1+2+3 ?分析: ⑴ sum—— 保存一個數(shù)的因子和; ⑵ i—— 1000以內(nèi)的一個數(shù),初值為 2,終值為 1000; ⑶ j —— i的試探因子,取值從 1到 i/2。 因 1是 i的因子,故直接作為 sum的初值, j的初值為 2。若 i%j為 0,則說明 j是 i的因子,則 sum+=j。 include void main(void) { int i, //1000以內(nèi)的一個數(shù) j, //i的試探因子 sum。//i的因子和 for(i=2。i=1000。i++) //外層 for語句 { for(sum=1,j=2。j=i/2。j++)//內(nèi)層 for語句 if(i%j==0) sum+=j。 if(sum==i) //i是完數(shù),按指定格式輸出 { couti=1”。 for(j=2。j=i/2。j++) //因未存 i的因子,需再求 if(i%j==0) cout39。+39。j。 coutendl。 } } } 轉(zhuǎn)向語句 ?goto語句是一條非常簡單的無條件轉(zhuǎn)向語句,它可以將程序的執(zhí)行流程轉(zhuǎn)到程序中的任何位置,通常是從它所在的地方轉(zhuǎn)移到帶有標號的語句處。 ?goto語句與條件語句組合,可形成當(dāng)型和直到型循環(huán)。 ?濫用 goto語句,會導(dǎo)致程序流程過于復(fù)雜,降低程序的可讀性、可維護性等。 ?軟件危機爆發(fā)后, goto語句一度成為爭論的焦點。 ?結(jié)構(gòu)化程序設(shè)計為了保持程序結(jié)構(gòu)的 單入口、單出口特性,嚴格限制直接使用 goto語句,但考慮到有時不得不改變程序執(zhí)行的流程, C++語言提供了功能受到限制的轉(zhuǎn)向語句 break和 continue來替代 goto語句。 break語句 ?格式: break。 該語句只用在 switch或循環(huán)語句中。 ?用在開關(guān)語句 switch中的某個分支語句中,其作用是結(jié)束開關(guān)語句的執(zhí)行,并把控制轉(zhuǎn)移到該開關(guān)語句之后的第一個語句執(zhí)行。 ?用在循環(huán)語句的循環(huán)體中,當(dāng)執(zhí)行到 break語句時,直接結(jié)束該循環(huán)語句的執(zhí)行,把控制轉(zhuǎn)移到緊跟該循環(huán)語句之后的語句執(zhí)行。 例 判別所輸入的一個大于 1的正整數(shù)是否是素數(shù)。 include include void main(void) { int x,i,j。 //x存放所輸入的正整數(shù) cout輸入兩個大于 1的正整數(shù)? 。 cinx。 for(i=2,j=(int)sqrt(x)。i=j。i++) if(x%i==0) break。 if(ij) coutx是素數(shù)! \n。 else coutx不是素數(shù)! \n。 } 若 x%i為 0,說明 i是 x的因子,即 x不可能是素數(shù),無需再做后續(xù)的循環(huán)。因此,用 break語句提前結(jié)束循環(huán)。 for有兩個出口: ?ij: 說明 x沒有大于 2和小于自身的因子,即 x是素數(shù)。 ?x%i==0: 說明 x不可能是素數(shù),此時 i肯定小于等于 j。 根據(jù) i與 j的關(guān)系來確定是何種情況結(jié)束 for循環(huán)的。 ? 特別關(guān)注:當(dāng)循環(huán)語句存在多個結(jié)束出口時,通常會在該循環(huán)結(jié)束后,對不同結(jié)束出口作出不同的處理,因此,正確區(qū)分不同結(jié)束出口是非常重要的。 ? 問題:例 for語句 能否不用 break語句?若能,如何修改 for語句? continue語句 ?格式: continue。 只用在循環(huán)語句的循環(huán)體中,作用是結(jié)束本次循環(huán)的循環(huán)體,提前進入下一次循環(huán)。對于 while和do?while 循環(huán)來說,若遇到 continue,則跳到循環(huán) 表達式 的位置;而對于 for循環(huán)來說,則跳到 for循環(huán)的 表達式 3處。 ?與 break語句的區(qū)別: break是結(jié)束循環(huán); continue是結(jié)束本次循環(huán),提前進入下一次循環(huán)。 ?例 輸入兩個大于 1的正整數(shù)并輸出。若輸入有誤,則給出提示并允許重新輸入,直到輸入正確為止。 ?分析: ⑴檢查輸入數(shù)據(jù)很重要。例如在例 ,若運行時輸入整數(shù) 1,程序輸出也是 1是素數(shù) !。程序運行時,難免輸入出錯,應(yīng)允許用戶重新輸入,直到輸入正確為止,除非特殊場合,如用戶身份驗證等。 ⑵為了便于輸入出錯時重新輸入,程序使用 do?while循環(huán),并設(shè)置一個輸入出錯標志 error, 用作輸出不同提示信息的依據(jù)和循環(huán)結(jié)束條件。 include void main(void) { int x,y, //x、 y分別存放所輸入的正整數(shù) error=0。//輸入出錯標志。為 1時出錯,為 0時正常 cout輸入兩個大于 1的正整數(shù)? 。 do{ if(error) cout\n\n輸入無效! \n重輸兩個大于 1的正整數(shù)? 。 error=0。 cinx。 if(x2){ error=1。 continue。 } ciny。 if(y2) error=1。 }while(error)。 //error為 1表示輸入出錯,需要重新輸入 cout\n\n輸入的兩個數(shù)為 x39。,39。yendl。 } goto語句簡介 * ?標號 label:S S是任一語句,包括空語句; label為語句標號,簡稱為標號,采用標識符。標號無需定義,可直接使用。 ?goto語句 goto label。 其中, label是語句標號,當(dāng)執(zhí)行到該語句時,無條件地將控制轉(zhuǎn)移到標有該標號的語句處執(zhí)行。 *goto語句的主要用途 ?從循環(huán)體內(nèi)轉(zhuǎn)移到循環(huán)體外:但可用 break或continue替代。 ?從多層循環(huán)的內(nèi)層跳到外層循環(huán)外:但這種用法不符合結(jié)構(gòu)化編程原則,不提倡使用。 ?不允許從循環(huán)語句的外面轉(zhuǎn)移到循環(huán)語句的里面。 ?與 if語句構(gòu)成循環(huán):如例 。但可由 while、do?while 和 for取代,因此也不提倡這樣使用。 例 用 goto和 if構(gòu)成循環(huán),求 1+2+?+100 的值。 include void main(void)
點擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1