1. 程式人生 > 其它 >新手小白需要學習的結構

新手小白需要學習的結構

 

   

C語言是世界上最流行、最實用的程式語言之一,想入門的朋友跟我一起從0基礎開始看C語言程式的最基本構成,開啟C語言的學習之旅。

首先,我們先來看一下C 語言的一個小的程式結構,我們以它作為參考。

C Happy 例項

C 程式主要包括以下部分:

  • 前處理器指令
  • 函式
  • 變數
  • 語句 & 表示式
  • 註釋

讓我們看一段簡單的程式碼,可以輸出 "Happy!":

eg:

#include <stdio.h>
int main()
{
/* 我的第一個 C 程式 */
printf("Happy! \n");
return 0;
}

接下來我們講解一下上面這段程式:

  1. 程式的第一行 #include <stdio.h>
     是前處理器指令,告訴 C 編譯器在實際編譯之前要包含 stdio.h 檔案。
  2. 下一行 int main() 是主函式,程式從這裡開始執行。
  3. 下一行 /*...*/ 將會被編譯器忽略,這裡放置程式的註釋內容。它們被稱為程式的註釋。
  4. 下一行 printf(...) 是 C 中另一個可用的函式,會在螢幕上顯示訊息 "Happy!"。
  5. 下一行 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(迴圈控制變數初始化; 迴圈終止條件; 迴圈控制變數增量)
{ 	
迴圈體 
}
  1. init 會首先被執行,且只會執行一次。這一步允許宣告並初始化任何迴圈變數。
  2. 接下來會判斷 condition。如果為true ,則會執行迴圈主體。如果為假,則不執行迴圈主體,且控制流會跳轉到緊接著for迴圈的下一條語句。
  3. 在執行完for迴圈的迴圈主體後,控制流會跳回上面的increment 語句。該語句允許更新迴圈控制變數。
  4. 條件再次被判斷。如果為真,則執行迴圈,這個過程不斷重複至條件變為false 時,for迴圈終止。

2、while迴圈

i = 1;
sum = 0;					迴圈初始化
while (i < 100)				終止條件
{
	printf("i = %d.\n", i);
	sum += i;				迴圈體
	i += 2;					迴圈控制增量,屬於迴圈體的一部分
}

 

while迴圈的執行步驟:

  1. 首先是迴圈初始化。這一部分其實不屬於while迴圈本身。
  2. 先判斷終止條件是否滿足。如果是真,則進入第2步;否則直接退出。
  3. 執行迴圈體,然後轉入第1步。

3、do while迴圈

i = 1;
sum = 0;					 初始化條件
do
{
	printf("i = %d.\n", i);
	sum += i;
	i += 2;					 增量,迴圈體的一部分
}while (i < 100);			 終止條件

 

do while迴圈的執行步驟:

  1. 首先是迴圈初始化。這一部分其實不屬於do while迴圈本身。
  2. 執行迴圈體(迴圈控制變數的增量是迴圈體的一部分)
  3. 判斷終止條件。若成立,則轉入1;若不成立則退出

基礎知識:

當我們定義了一個區域性變數,但是沒有初始化的時候,這個值是隨機的