return、goto、break、continue。詳解

return、goto、break、continue。詳解
其中return、goto可以應用到程序的任何地方,break、continue和循環語句一起使用。
1、return
return用於從函數返回,使執行的函數返回到函數的調用點。
return的一般形式是: return 表達式
其中表達式就是函數返回的值。
函數使用return的次數不受限制,但是當函數遇到第一個return的時候,函數停止執行,返回到函數的調用點。
聲明爲void型的函數不能包括代值的return語句。
例如遞歸函數:
int digui(int num);
void main(void)
{
 int num=0;
 int fac=0;
 printf("input a number \n");
 scanf("%d",&num);
 fac=digui(num);
 printf("%d \'s factorial is %d\n",num,fac);
 getch();
}
int digui(int num)
{
 if(num==1) return 1;
 else return num*digui(num-1);
}
程序執行結果是:
input a number
5
5 's factorial is 120
我們可以看到main函數是void類型,不需要return語句。而digui函數是需要return的。
在遞歸函數中我們有兩個return。if(num==1) return 1;這條語句是遞歸函數的終結。
2、goto
基本上已經不再使用goto語句了。
基本形式:
goto 標籤;
標籤:
我們使用goto構造一個循環,例如:
int main(void)
{
int i=0;
Electrics:
 printf("%d ",i);
 i++;
if(i<10)
 goto Electrics;
getch();
}
3、break
在循環中break終止循環,也就是跳出循環。執行循環下邊的語句。
在switch中終止一個case。
例如:
int main(void)
{
 int t=0;
 for(;t<=10;t++)
 {
 if(t==9)break;
 printf("%d ",t); 
 }
 printf("\n");
 printf("hello c!");
 getch();
}
程序結果:
0 1 2 3 4 5 6 7 8
hello c!
當執行到t==9的時候,退出循環,執行printf("\n");語句。所以沒有輸出10。
當是嵌套的多層循環,break只是退出最內層的循環。
int main(void)
{
 int t=0;

 for(;t<=2;t++)
 {
 int j=0;
 for (;j<5;j++)
 {
 if(j>2)break;
 printf("j is %d \n",j); 
 }
 printf("t is %d \n",t); 
 }
 printf("\n");
 printf("hello c!");
 getch();
}
程序結果:
j is 0
j is 1
j is 2
t is 0
j is 0
j is 1
j is 2
t is 1
j is 0
j is 1
j is 2
t is 2
從程序結果可以看出,break每次都是終止內層循環。和外層循環沒有關係。
hello c!
4、continue
簡單的說就是跳過剩餘代碼,執行下一個循環。
例如:
int main(void)
{
 int t=0;
 for(;t<=10;t++)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章