国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

C語(yǔ)言入門之轉(zhuǎn)移語(yǔ)句

2019-11-17 05:24:04
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

  程序中的語(yǔ)句通常總是按順序方向, 或按語(yǔ)句功能所定義的方向執(zhí)行的。假如需要改變程序的正常流向, 可以使用本小節(jié)介紹的轉(zhuǎn)移語(yǔ)句。在C語(yǔ)言中提供了4種轉(zhuǎn)移語(yǔ)句:

   goto,break, continue和return。

   其中的return語(yǔ)句只能出現(xiàn)在被調(diào)函數(shù)中, 用于返回主調(diào)函數(shù),我們將在函數(shù)一章中具體介紹。 本小節(jié)介紹前三種轉(zhuǎn)移語(yǔ)句。

   1.goto語(yǔ)句

   goto語(yǔ)句也稱為無(wú)條件轉(zhuǎn)移語(yǔ)句,其一般格式如下: goto 語(yǔ)句標(biāo)號(hào); 其中語(yǔ)句標(biāo)號(hào)是按標(biāo)識(shí)符規(guī)定書(shū)寫的符號(hào), 放在某一語(yǔ)句行的
前面,標(biāo)號(hào)后加冒號(hào)(:)。語(yǔ)句標(biāo)號(hào)起標(biāo)識(shí)語(yǔ)句的作用,與goto 語(yǔ)句配合使用。

   如: label: i++;
     loop: while(x<7);

   C語(yǔ)言不限制程序中使用標(biāo)號(hào)的次數(shù),但各標(biāo)號(hào)不得重名。goto語(yǔ)句的語(yǔ)義是改變程序流向, 轉(zhuǎn)去執(zhí)行語(yǔ)句標(biāo)號(hào)所標(biāo)識(shí)的語(yǔ)句。

   goto語(yǔ)句通常與條件語(yǔ)句配合使用。可用來(lái)實(shí)現(xiàn)條件轉(zhuǎn)移, 構(gòu)成循環(huán),跳出循環(huán)體等功能。

   但是,在結(jié)構(gòu)化程序設(shè)計(jì)中一般不主張使用goto語(yǔ)句, 以免造成程序流程的混亂,使理解和調(diào)試程序都產(chǎn)生困難。

   統(tǒng)計(jì)從鍵盤輸入一行字符的個(gè)數(shù)。

#include"stdio.h"
void main(){
  int n=0;
    loop: if(getchar()!='/n')
  {
   n++;
   goto loop;
  }
  printf("%d",n);
} int n=0;
printf("input a string/n");
loop: if(getchar()!='/n')
{
  n++;
  goto loop;
}
printf("%d",n);

   本例用if語(yǔ)句和goto語(yǔ)句構(gòu)成循環(huán)結(jié)構(gòu)。當(dāng)輸入字符不為'/n'時(shí)即執(zhí)行n++進(jìn)行計(jì)數(shù),然后轉(zhuǎn)移至if語(yǔ)句循環(huán)執(zhí)行。直至輸入字符為'/n'才停止循環(huán)。

   break語(yǔ)句

   break語(yǔ)句只能用在switch 語(yǔ)句或循環(huán)語(yǔ)句中, 其作用是跳出switch語(yǔ)句或跳出本層循環(huán),轉(zhuǎn)去執(zhí)行后面的程序。由于break語(yǔ)句的轉(zhuǎn)移方向是明確的,所以不需要語(yǔ)句標(biāo)號(hào)與之配合。break語(yǔ)句的一般形式為: break; 上面例題中分別在switch語(yǔ)句和for語(yǔ)句中使用了break 語(yǔ)句作為跳轉(zhuǎn)。使用break語(yǔ)句可以使循環(huán)語(yǔ)句有多個(gè)出口,在一些場(chǎng)合下使編程更加靈活、方便。

   continue語(yǔ)句

   continue語(yǔ)句只能用在循環(huán)體中,其一般格式是:

continue;

   其語(yǔ)義是:結(jié)束本次循環(huán),即不再執(zhí)行循環(huán)體中continue 語(yǔ)句之后的語(yǔ)句,轉(zhuǎn)入下一次循環(huán)條件的判定與執(zhí)行。應(yīng)注重的是, 本語(yǔ)句只結(jié)束本層本次的循環(huán),并不跳出循環(huán)。

void main(){
  int n;
  for(n=7;n<=100;n++)
  {
   if (n%7!=0)
    continue;
   printf("%d ",n);
  }
}

   輸出100以內(nèi)能被7整除的數(shù)。

int n;
for(n=7;n<=100;n++)
{
  if (n%7!=0)
   continue;
  printf("%d ",n);
}

   本例中,對(duì)7~100的每一個(gè)數(shù)進(jìn)行測(cè)試,如該數(shù)不能被7整除,即模運(yùn)算不為0,則由continus語(yǔ)句轉(zhuǎn)去下一次循環(huán)。只有模運(yùn)算為0時(shí),才能執(zhí)行后面的printf語(yǔ)句,輸出能被7整除的數(shù)。

#include"stdio.h"
void main(){
  char a,b;
  printf("input a string:/n");
  b=getchar();
  while((a=getchar())!='/n'){
   if(a==b){
    printf("same character/n");
    break;
   }b=a;
  }
}

   檢查輸入的一行中有無(wú)相鄰兩字符相同。

char a,b;
printf("input a string:/n");
b=getchar();
while((a=getchar())!='/n'){
  if(a==b){
   printf("same character/n");
   break;
  }b=a;
}

   本例程序中,把第一個(gè)讀入的字符送入b。然后進(jìn)入循環(huán),把下一字符讀入a,比較a,b是否相等,若相等則輸出提示串并中止循環(huán),若不相等則把a(bǔ)中的字符賦予b,輸入下一次循環(huán)。

   輸出100以內(nèi)的素?cái)?shù)。素?cái)?shù)是只能被1 和本身整除的數(shù)。可用窮舉法來(lái)判定一個(gè)數(shù)是否是素?cái)?shù)。

void main(){
  int n,i;
  for(n=2;n<=100;n++){
   for(i=2;i    if(n%i==0) break;
    if(i>=n) printf("/t%d",n);
   }
  } int n,i;
  for(n=2;n<=100;n++){
   for(i=2;i    if(n%i==0) break;
    if(i>=n) printf("/t%d",n);
}

   本例程序中,第一層循環(huán)表示對(duì)1~100這100個(gè)數(shù)逐個(gè)判定是否是素?cái)?shù),共循環(huán)100次,在第二層循環(huán)中則對(duì)數(shù)n用2~n-1逐個(gè)去除,若某次除盡則跳出該層循環(huán),說(shuō)明不是素?cái)?shù)。 假如在所有的數(shù)都是未除盡的情況下結(jié)束循環(huán),則為素?cái)?shù),此時(shí)有i>=n, 故可經(jīng)此判定后輸出素?cái)?shù)。然后轉(zhuǎn)入下一次大循環(huán)。實(shí)際上,2以上的所有偶數(shù)均不是素?cái)?shù),因此可以使循環(huán)變量的步長(zhǎng)值改為2,即每次增加2,此外只需對(duì)數(shù)n用2~n去除就可判定該數(shù)是否素?cái)?shù)。這樣將大大減少循環(huán)次數(shù),減少程序運(yùn)行時(shí)間。

#include"math.h"
void main(){
  int n,i,k;
  for(n=2;n<=100;n+=2){
   k=sqrt(n);
   for(i=2;i    if(n%i==0) break;
    if(i>=k) printf("/t%2d",n);
  }
}


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 宁津县| 大渡口区| 江安县| 澄江县| 丘北县| 海宁市| 肃宁县| 孟州市| 鲁山县| 盐山县| 高陵县| 高台县| 息烽县| 吴忠市| 仲巴县| 新郑市| 五寨县| 北流市| 凤城市| 自治县| 安义县| 库车县| 岳普湖县| 土默特右旗| 大悟县| 临高县| 砀山县| 甘孜| 丽江市| 安陆市| 仙居县| 武冈市| 鄂州市| 施甸县| 深泽县| 靖江市| 抚顺市| 永安市| 柳林县| 岱山县| 闻喜县|