【文章內(nèi)容簡(jiǎn)介】
} while(表達(dá)式 1) { …… if (表達(dá)式 2) continue。 …… } C++程序設(shè)計(jì) 23 轉(zhuǎn)向語(yǔ)句 ? goto 語(yǔ)句 將控制從它所在的地方轉(zhuǎn)移到標(biāo)識(shí)符所標(biāo)識(shí)的語(yǔ)句處 大量使用 goto 語(yǔ)句將會(huì)使程序的流程無(wú)規(guī)律,降低程序的可讀性,程序設(shè)計(jì)中盡量少用 goto 語(yǔ)句 ? 小結(jié) 總是可以不使用轉(zhuǎn)向控制語(yǔ)句的循環(huán)代碼 使用轉(zhuǎn)向控制語(yǔ)句的目的是使代碼簡(jiǎn)化,程序易讀 C++程序設(shè)計(jì) 24 綜合示例 求循環(huán)次數(shù) : 1) while (int i=0) i。 2) int i=5。 do { coutiendl。 i。 } while ( i !=0)。 3) for (int i=0,j=10。i=j=10。i++,j)。 4) int s=3379。 while (s++%2+3%2) s++。 0 無(wú)限 無(wú)限 下列語(yǔ)句不是死循環(huán)的是? 1) int i=100。 while (1) { i =i%100+1。 if (i==20) break。 } 2) int i,sum=0。 for (i=1。i++) sum=sum+1。 3) int k=0。 do ++k。 while (k=0)。 無(wú)限 20 C++程序設(shè)計(jì) 25 實(shí)例 1:輸入一個(gè)整數(shù) m ,判斷它是否是素?cái)?shù) 數(shù)學(xué)定義:素?cái)?shù)是指能被 1和它自身整除外,不能被其它任何整數(shù)整除的數(shù)。 方法 1: 2 ~ m1整除? 方法 2:數(shù)學(xué)證明 2 ~ 整除? 整除的 C++語(yǔ)言表示: X %K ==0? 實(shí)例研究 m 開(kāi)始 輸入整數(shù) m i=k? m%i == 0? 輸出 m不是素?cái)?shù) 結(jié)束 Y N i←i+1 Y N 輸出 m是素?cái)?shù) i←2, km?C++程序設(shè)計(jì) 26 實(shí)例研究 include iostream include cmath using namespace std。 int main() { int m, i, k。 coutPlease enter a number:。 cinm。 i =2。 k = (int)sqrt(m)。 while (i=k) { if (m % i == 0) { coutm is not a prime number!\n。 break。 } i++。 } // if (ik) coutm is a prime number!\n。 // return 0。 } 開(kāi)始 輸入整數(shù) m i=k? m%i == 0? 輸出 m不是素?cái)?shù) 結(jié)束 Y N i←i+1 Y N 輸出 m是素?cái)?shù) i←2, km?去掉 if(ik)如何? C++程序設(shè)計(jì) 27 include iostream include cmath using namespace std。 int main() { int m, i, flag = 1。 /*標(biāo)志變量 flag初值置為 1*/ coutPlease enter a number:。 cinm。 for (i=2。 i=m1。 i++) { if (m % i == 0) { flag = 0。 coutiendl。 } } if (flag) // 等價(jià)于 if (flag==1) coutNo divisor! It is a prime number.\n。 coutProgram is over!\n。 return 0。 } 實(shí)例研究 思考 ? (1)這個(gè)程序是做什么的? (2)求 2~ 100之間的質(zhì)數(shù)并以每行顯示 5 個(gè)質(zhì)數(shù) ,請(qǐng)編寫(xiě)程序 C++程序設(shè)計(jì) 28 include iostream using namespace std。 int main() { int m, i, nCount = 0。 bool bIsPrime。 for(m = 2。m=100。m++) { //bIsPrime初值為 true bIsPrime = true。 for(i = 2。i=m1。i++) { if (m % i == 0) { bIsPrime =false。 break。 } } if (bIsPrime) //等價(jià)于 if (bIsPrime==true) { coutm39。\t39。 nCount++。 if (nCount % 5 ==0) coutendl。 } }// end of for(m=1?!? return 0。 } 實(shí)例研究 這個(gè)程序就是求 2~ 100之間的質(zhì)數(shù)并以每行顯示 5 個(gè)質(zhì)數(shù) !!! C++程序設(shè)計(jì) 29 實(shí)例 2:分類統(tǒng)計(jì) 對(duì) 輸入一串字符, 統(tǒng)計(jì)其中單詞的個(gè)數(shù)、字母?jìng)€(gè)數(shù)、數(shù)字個(gè)數(shù)。規(guī)定單詞之間用一個(gè)空白符分開(kāi)(空白符包括空格符、水平制表符、換行符) ,以 ^z表示輸入結(jié)束。 分析: ( 1)統(tǒng)計(jì)單詞的個(gè)數(shù),可通過(guò)統(tǒng)計(jì)空白符的個(gè)數(shù)得到。 ( 2)由于標(biāo)準(zhǔn)輸入流 cin輸入時(shí)會(huì)把空白符作為輸入結(jié)束符,所以應(yīng)使用 () 函數(shù)逐一讀取字符。 實(shí)例研究 C++程序設(shè)計(jì) 30 include iostream using namespace std。 int main(