寫程式就像建立模型一樣,乙個完整的程式不僅有所謂的磚,也有所謂的框架,其實框架這個東西在後來的學習中將會指代封閉好的工具包一樣的東西。在這裡我們指的框架是指如何讓這些」磚」完成更加複雜的功能。這就涉及到了一些語句。即順序執行的語句,按照一定條件才執行的語句,按照條件進行迴圈的語句。
順序語句不用多說,很簡單,正常的想法都這樣,挨著往下執行就是
先說條件語句,先來最完美的一種
#include
int main()
else
if(a==0)
else
return
0;}
直接給出了例子,應該很容易理解。有一句新的內容,scanf();這是乙個用來輸入的函式,其中的&a是往a的位址裡送內容,為什麼取位址送,,這是人為規定的,什麼是位址,以後統一講。
還有比較重要的一點是如果每乙個條件後面如果只有一條語句,其實是不需要花括號的,但是如果是多條,就必須用括號括起來。
上面給出的程式執行順序是很重要的,從開始執行時,直接找符合條件的對應的語句執行,不會再順序執行,如果想要挨著判斷每乙個條件,就需要寫好多個if語句,還有每乙個else總是與它之上的最近的乙個if進行配對。
下面給出另一種執行順序的**
#include
int main()
if(a==0)
if(a<0)
return
0;}
重要的事情說三遍,兩個程式的執行順序不一樣!!!
從第二個程式可看出,if條件語句可以單獨使用的
還有乙個問題如果執行體為空怎麼辦,其實可以什麼都不寫,也可以這樣if(a==0) ;
請一定要注意這是一句話,代表if的執行體沒了,後面有**也已經不屬於if管了
還有一種分支語句,其實用條件語句也可以互換
多分支語句switch的格式:
switch( 表示式)
執行的順序是:找到合適的入口,一直執行到程式結束,一般為了效果像條件語句一樣,就在每乙個條件的執行體最後加乙個break;意思是用來推出迴圈,如果是巢狀語句時,就是推出當前的迴圈體,即本層迴圈。
說到巢狀,其實這些語句為了達到多條件判斷,將迴圈或者條件語句進行巢狀來達到目的。
接下來就是迴圈語句,有三種:
格式:
while(表示式)
語句序列稱為迴圈體,當為一條語句時,表示復合語句的{}可以省略。
表示式可以為任何型別
先判斷,後執行,若條件不成立,有可能一次也不執行。
語句序列中必須有改變while後面括號的表示式值的語句,否則有可能死迴圈。
do while(表示式);
語句序列稱為迴圈體,當為一條語句時,表示復合語句的{}可以省略。
表示式可以為任何型別。
其特點是先執行,後判斷,若條件不成立,就跳出迴圈。
語句序列中必須有改變while後面括號的表示式值的語句,否則有可能死迴圈。
while(表示式)後面的「;」不能少。
for (《表示式1 >;《表示式2 >;《表示式3>)
語句序列稱為迴圈體。
當語句序列只有單條語句,表示復合語句的{}可以省略。
表示式1一般為賦值表示式,給控制變數賦初值;如果省略表示式1,這時for語句為如
表示式2一般為關係表示式或邏輯表示式,稱為迴圈控制條件
表示式3一般為賦值表示式,給控制變數增量或減量
for(;;) 意思是三個表示式都可以省略,或者只要其中一二
for語句的執行順序,重要!剛進入迴圈體,首先執行表示式1的初始條件,然後判斷表示式二的判斷條件是否滿足,然後進入迴圈體執行,執行完後才會去進行表示式三的自增量等東西,這樣就完成了一次迴圈。
到這裡就只剩乙個goto 語句了,這個玩意從出生開始就褒貶不一,也就造成了使用率的降低。
最後簡單給出一下巢狀的形式以及一些規則:
while()
…… }do
while( );
…… }while( );
while()
while( );
…….
}for( ; ;)
while();
…… while()
…… } 三種迴圈可互相巢狀,層數不限。
外層迴圈可包含兩個以上內迴圈,但不能相互交叉。
巢狀迴圈的執行流程:外層迴圈執行一次,內層迴圈要執行完。
巢狀迴圈的跳**只能跳轉出本層迴圈。
禁止從外層跳入內層、禁止跳入同層的另一迴圈和向上跳轉。
至於條件語句的巢狀,沒迴圈語句那麼複雜,形式也是類似的,以後一見到就會看懂。
程式設計入門 C語言(三)
你的程式要讀入一系列正整數資料,輸入 1表示輸入結束,1本身不是輸入的資料。程式輸出讀到的資料中的奇數和偶數的個數。輸入格式 一系列正整數,整數的範圍是 0,100000 如果輸入 1則表示輸入結束。輸出格式 兩個整數,第乙個整數表示讀入資料中的奇數的個數,第二個整數表示讀入資料中的偶數的個數。兩個...
C語言入門三
1 什麼是陣列 陣列表示相同型別的資料集合,是聚合型別 2 陣列存放在哪個位置?方法內3 陣列什麼時候確定大小?編譯時4 什麼時候給陣列分配記憶體?程式執行時 5 最多分配多大的記憶體?棧的大小 1m 2m 6 定義陣列 int arr 5 5為陣列長度陣列初始化只有一次機會即在定義陣列的時候 功能...
程式設計練習 程式設計入門 C語言
程式每次讀入乙個正三位數,然後輸出逆序的數字。注意,當輸入的數字含有結尾的0時,輸出不應帶有前導的0。比如輸入700,輸出應該是7。簡單一點 include intmain 複雜一點 需要考慮到百位十位為零的情況 include intmain return0 utc是世界協調時,bjt是北京時間,...