除了 while 和 for 語句,在C語言中還有一個語句 goto,它也能構成循環。不過由於 goto 語句很容易造成代碼混亂,維護和閱讀困難,飽受诟病,不被推薦,而且 goto 循環完全可以被其他循環取代,所以後來的很多編程語言都取消了 goto 語句,我們也不再講解。
國內很多大學仍然講解 goto 語句,但也僅僅是完成教材所設定的課程,goto 語句在實際開發中很難見到。
總結
while和for 循環都可以用來處理同一個問題,一般可以互相代替。
對於while和do-while循環,循環體中應包括使循環趨於結束的語句。
用while和do-while循環時,循環變量初始化的操作應在while和do-while語句之前完成,而for語句可以在內部實現循環變量的初始化。
for循環是最常用的循環,它的功能強大,可以代替其他循環。
幾個例子
用下面的公式求π:
分析:首先,系數為正數的項的分母是4n-3(n為正數項的項數),為負數的項的分母為4n-1(n為負數項的項數),即分母的變化規律是1、3、5、7...的奇數數列,則第n項的分母為2n-1,第10000項的分母為2*10000-1。
#include <stdio.h>
#include <math.h>
int main()
{
double p=0,j=1;
int i;
for( i=1;i<10000;i++ ) //此處i為項數
{
j=pow(-1.0,i+1)/(2*i-1); //pow(x,y)用來求x的y次冪
p+=j;
printf("%lf\n",4*p); //輸出每一項的值
}
printf("%lf\n",4*p); //輸出最終pi值
return 0;
}
由於輸出結果較多,請大家自己運行代碼。
i 的值越大,結果越精准,同樣計算時間也更長。
pow() 是一個數學函數,使用方法為pow(x, y),用來求x的y次冪;需要引入頭文件 math.h。
更多例子請查看:
-
C語言判斷一個數是否是素數
-
C語言輸出2的N次冪
-
C語言輸出九九乘法表(5種解法)
-
百錢買百雞問題(C語言版)
-
計算用1分錢、2分錢、5分錢組成1元錢的方式
-
計算一個數的平方根
-
找到一個數的所有真因子
-
計算你收藏的硬幣值多少錢
-
輸入n個整數並計算它們的和
讀者要注意,學習了if、switch、while、for 語句你就可以寫一些簡單的小程序了,這對大部分人是一個障礙。
相信你肯定明白了選擇結構和循環結構的語法,但是遇到實際問題時,可能仍然不知道從何入手,寫不出代碼,這是因為大家初學編程,還沒有形成編程思維,沒有足夠的編程經驗,編程不僅僅是語法,更多的是解決問題的能力。
大家要多參考別人的代碼,並通過實例練習來不斷強化編程思維,我們也給出了很多例子,希望大家好好研習並能夠自己完成代碼。