新手小白需要學習的結構
C語言是世界上最流行、最實用的程式語言之一,想入門的朋友跟我一起從0基礎開始看C語言程式的最基本構成,開啟C語言的學習之旅。
首先,我們先來看一下C 語言的一個小的程式結構,我們以它作為參考。
C Happy 例項
C 程式主要包括以下部分:
- 前處理器指令
- 函式
- 變數
- 語句 & 表示式
- 註釋
讓我們看一段簡單的程式碼,可以輸出 "Happy!":
eg:
#include <stdio.h>
int main()
{
/* 我的第一個 C 程式 */
printf("Happy! \n");
return 0;
}
接下來我們講解一下上面這段程式:
- 程式的第一行 #include <stdio.h>
- 下一行 int main() 是主函式,程式從這裡開始執行。
- 下一行 /*...*/ 將會被編譯器忽略,這裡放置程式的註釋內容。它們被稱為程式的註釋。
- 下一行 printf(...) 是 C 中另一個可用的函式,會在螢幕上顯示訊息 "Happy!"。
- 下一行 return 0; 終止 main() 函式,並返回值 0。
在C語言程式裡,一共有三種程式結構:順序結構、選擇結構(分支結構)、迴圈結構
順序結構:按照實物本身特性,必須一個接著一個來完成。
選擇結構:到某個節點後,會根據一次判斷結果來決定之後走哪一個分支。
迴圈結構:迴圈結構有一個迴圈體,迴圈體是一段程式碼。對於迴圈結構來說,關鍵在於根據判斷的結果,來決定迴圈體執行多少次。
總結:對於順序結構來說,不需判斷,因為下一句指令就是你要執行的。對與迴圈與選擇結構來說,都需要進行判斷。然後根據判斷結果來決定怎麼辦。
邏輯上有一種型別,叫bool型別(又寫作boolean型別,中文叫布林型別)。布林型別只有兩個值,真和假。
C語言中有以下一些判斷運算子
== 等於
!= 不等於
> 大於
< 小於
>= 大於等於
<= 小於等於
使用這些判斷運算子,可以寫出一個判斷表示式,這個判斷表示式最終的值就是一個bool型別。這個判斷表示式的bool值就決定了選擇結構如何選擇,迴圈結構如何迴圈。
1、選擇結構詳解:
C語言中選擇結構一共有兩種:
第一種:if else
引入關鍵字:if else else if
if (bool值) // 如果bool值為真,則執行程式碼段1,否則執行程式碼段2
{
程式碼段1
}
else
{
程式碼段2
}
if (bool值1) // 如果bool值1為真,則執行程式碼段1
{ // 否則則判斷bool值2是否為真,若為真則執行程式碼段2
程式碼段1 // 否則直接執行程式碼段3
}
else if (bool值2) // 開頭的if和結尾的else都只能有一個,但是中間的
{ // else if可以有好多個。
程式碼段2
}
第二種:switch case
涉及到的C語言關鍵字: switch case break default
switch (變數) 執行到這一句時,變數的值已經知道了
{ switch case語句執行時,會用該變數的值一次與各個case後的常數去對比,試圖找到第一個匹配項。
case 常數1:
程式碼段1; 找到匹配的專案後,就去執行該case對應的程式碼段
break; 如果沒找到則繼續下一個case,直到default。
case 常數2: 如果前面的case都未匹配,則default匹配。
程式碼段2;
break;
}
注意:
1、case中必須是常數,而且必須是整形(不能是float double,可以是int char)
2、一般來說,每個case中程式碼段後都必須有一個break;如果沒有,結果可能會讓你大吃一驚
3、case之後一般都會有default。語法上允許沒有default,但是建議寫程式碼時一定要寫。
2、C語言中的迴圈結構
C語言中常用的迴圈結構有三個:for迴圈、while迴圈、do while迴圈。
1、for迴圈
for(迴圈控制變數初始化; 迴圈終止條件; 迴圈控制變數增量)
{
迴圈體
}
- init 會首先被執行,且只會執行一次。這一步允許宣告並初始化任何迴圈變數。
- 接下來會判斷 condition。如果為true ,則會執行迴圈主體。如果為假,則不執行迴圈主體,且控制流會跳轉到緊接著for迴圈的下一條語句。
- 在執行完for迴圈的迴圈主體後,控制流會跳回上面的increment 語句。該語句允許更新迴圈控制變數。
- 條件再次被判斷。如果為真,則執行迴圈,這個過程不斷重複至條件變為false 時,for迴圈終止。
2、while迴圈
i = 1;
sum = 0; 迴圈初始化
while (i < 100) 終止條件
{
printf("i = %d.\n", i);
sum += i; 迴圈體
i += 2; 迴圈控制增量,屬於迴圈體的一部分
}
while迴圈的執行步驟:
- 首先是迴圈初始化。這一部分其實不屬於while迴圈本身。
- 先判斷終止條件是否滿足。如果是真,則進入第2步;否則直接退出。
- 執行迴圈體,然後轉入第1步。
3、do while迴圈
i = 1;
sum = 0; 初始化條件
do
{
printf("i = %d.\n", i);
sum += i;
i += 2; 增量,迴圈體的一部分
}while (i < 100); 終止條件
do while迴圈的執行步驟:
- 首先是迴圈初始化。這一部分其實不屬於do while迴圈本身。
- 執行迴圈體(迴圈控制變數的增量是迴圈體的一部分)
- 判斷終止條件。若成立,則轉入1;若不成立則退出
基礎知識:
當我們定義了一個區域性變數,但是沒有初始化的時候,這個值是隨機的