C程序開發初級講座之轉移語句

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

goto,break, continue和return。

其中的return語句只能出現在被調函數中, 用于返回主調函數,我們將在函數一章中具體介紹。 本小節介紹前三種轉移語句。

1.goto語句

goto語句也稱爲無條件轉移語句,其一般格式如下: goto 語句標號; 其中語句標號是按標識符規定書寫的符號, 放在某一語句行的

前面,標號後加冒號(:)。語句標號起標識語句的作用,與goto 語句配合使用。

如: label: i++;

loop: while(x<7);

C語言不限制程序中使用標號的次數,但各標號不得重名。goto語句的語義是改變程序流向, 轉去執行語句標號所標識的語句。

goto語句通常與條件語句配合使用。可用來實現條件轉移, 構成循環,跳出循環體等功能。

但是,在結構化程序設計中一般不主張使用goto語句, 以免造成程序流程的混亂,使理解和調試程序都産生困難。

統計從鍵盤輸入一行字符的個數。

#include"stdio.h"

void main(){

int n=0;

PRintf("input a string\n");

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語句和goto語句構成循環結構。當輸入字符不爲'\n'時即執行n++進行計數,然後轉移至if語句循環執行。直至輸入字符爲'\n'才停止循環。

break語句

break語句只能用在switch 語句或循環語句中, 其作用是跳出switch語句或跳出本層循環,轉去執行後面的程序。由于break語句的轉移方向是明確的,所以不需要語句標號與之配合。break語句的一般形式爲: break; 上面例題中分別在switch語句和for語句中使用了break 語句作爲跳轉。使用break語句可以使循環語句有多個出口,在一些場合下使編程更加靈活、方便。

C程序開發初級講座之轉移語句
更多內容請看Wlan組網----家庭專題專題,或

continue語句

continue語句只能用在循環體中,其一般格式是:

continue;

其語義是:結束本次循環,即不再執行循環體中continue 語句之後的語句,轉入下一次循環條件的判定與執行。應注重的是, 本語句只結束本層本次的循環,並不跳出循環。

void main(){

int n;

for(n=7;n<=100;n++)

{

if (n%7!=0)

continue;

printf("%d ",n);

}

}

輸出100以內能被7整除的數。

int n;

for(n=7;n<=100;n++)

{

if (n%7!=0)

continue;

printf("%d ",n);

}

本例中,對7~100的每一個數進行測試,如該數不能被7整除,即模運算不爲0,則由continus語句轉去下一次循環。只有模運算爲0時,才能執行後面的printf語句,輸出能被7整除的數。

#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;

}

}

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

char a,b;

printf("input a string:\n");

b=getchar();

while((a=getchar())!='\n'){

if(a==b){

printf("same character\n");

break;

}b=a;

}

本例程序中,把第一個讀入的字符送入b。然後進入循環,把下一字符讀入a,比較a,b是否相等,若相等則輸出提示串並中止循環,若不相等則把a中的字符賦予b,輸入下一次循環。

輸出100以內的素數。素數是只能被1 和本身整除的數。可用窮舉法來判定一個數是否是素數。

void main(){

int n,i;

for(n=2;n<=100;n++){

for(i=2;i<n;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<n;i++)

if(n%i==0) break;

if(i>=n) printf("\t%d",n);

}

本例程序中,第一層循環表示對1~100這100個數逐個判定是否是素數,共循環100次,在第二層循環中則對數n用2~n-1逐個去除,若某次除盡則跳出該層循環,說明不是素數。 假如在所有的數都是未除盡的情況下結束循環,則爲素數,此時有i>=n, 故可經此判定後輸出素數。然後轉入下一次大循環。實際上,2以上的所有偶數均不是素數,因此可以使循環變量的步長值改爲2,即每次增加2,此外只需對數n用2~n去除就可判定該數是否素數。這樣將大大減少循環次數,減少程序運行時間。

#include"math.h"

void main(){

int n,i,k;

for(n=2;n<=100;n+=2){

k=sqrt(n);

for(i=2;i<k;i++)

if(n%i==0) break;

if(i>=k) printf("\t%2d",n);

}

}

C程序開發初級講座之轉移語句
更多內容請看Wlan組網----家庭專題專題,或

C程序開發初級講座之轉移語句
  程序中的語句通常總是按順序方向, 或按語句功能所定義的方向執行的。假如需要改變程序的正常流向, 可以使用本小節介紹的轉移語句。在C語言中提供了4種轉移語句:  goto,break, continue和return。 ...查看完整版>>C程序開發初級講座之轉移語句
 
C程序開發初級講座之基礎語句
  從程序流程的角度來看,程序可以分爲三種基本結構, 即順序結構、分支結構、循環結構。 這三種基本結構可以組成所有的各種複雜程序。C語言提供了多種語句來實現這些程序結構。 本文將介紹這些基本語句及其應用,...查看完整版>>C程序開發初級講座之基礎語句
 
C程序開發初級講座之分支結構
  關系運算符和表達式  在程序中經常需要比較兩個量的大小關系, 以決定程序下一步的工作。比較兩個量的運算符稱爲關系運算符。 在C語言中有以下關系運算符:  < 小于  <= 小于或等于   > 大于 ...查看完整版>>C程序開發初級講座之分支結構
 
C程序開發初級講座之循環結構
作者: 唯C世界         C++學習資源網 循環結構是程序中一種很重要的結構。其特點是, 在給定條件成立時,反複執行某程序段,直到條件不成立爲止。 給定的條件稱爲循...查看完整版>>C程序開發初級講座之循環結構
 
C語言初學者入門講座 第八講 轉移語句
  程序中的語句通常總是按順序方向, 或按語句功能所定義的方向執行的。假如需要改變程序的正常流向, 可以使用本小節介紹的轉移語句。在C語言中提供了4種轉移語句:  goto,break, continue和return。  其中的...查看完整版>>C語言初學者入門講座 第八講 轉移語句
 
C語言初學者入門講座 第三講 基礎語句
  從程序流程的角度來看,程序可以分爲三種基本結構, 即順序結構、分支結構、循環結構。 這三種基本結構可以組成所有的各種複雜程序。C語言提供了多種語句來實現這些程序結構。 本文將介紹這些基本語句及其應用,...查看完整版>>C語言初學者入門講座 第三講 基礎語句
 
[程序設計/Web開發][ASP代碼]rs.open語句詳細說明
[程序設計/Web開發][ASP代碼]rs.open語句詳細說明 [程序設計/Web開發][ASP代碼]rs.open語句詳細說明 '*************************************************************************************************...查看完整版>>[程序設計/Web開發][ASP代碼]rs.open語句詳細說明
 
讓SQL程序更快的運行:語句優化分析
操作符優化 in 操作符 用in寫出來的sql的優點是比較容易寫及清晰易懂,這比較適合現代軟件開發的風格。 但是用in的sql性能總是比較低的,從oracle執行的步驟來分析用in的sql與不用in的sql有以下區別: oracle試圖將其...查看完整版>>讓SQL程序更快的運行:語句優化分析
 
菜鳥到高手:SQL開發進階常用精妙語句
如何從一位菜鳥蛻變成爲高手,靈活使用的SQL語句是必不可少的。本文收集了部分比較經典,常用的SQL語句供大家參考,希望對大家有所幫助。 說明:複制表(只複制結構,源表名:a 新表名:b)   SQL: select * into b f...查看完整版>>菜鳥到高手:SQL開發進階常用精妙語句
 
 
回到王朝網路首頁