Visual Studio 2015的發佈,跟隨而來的相關的教程的空白,這裡講逐步在Visual Studio 2015上講解C語言相關的系列視頻教程經驗(注:由於視頻修改難度大,所以先暫時發佈文檔,視頻後期逐步補上),本文主要涉及:
① 從純邏輯學角度介紹if else語句;
② if else 擴展到 關係運算符;
③ if else 擴展到 邏輯運算符;
④ if else if ... else 結構的由來;
⑤ == 和 = 的陷阱
工具/原料
Visual Studio 2015
Windows 8.1 x64
簡介
一門編程語言,需要同時具備三種語法:
① 順序:通常情況下,計算機程序中的語句是按照它們被編寫的順序、被逐條執行的。這就是所謂的順序執行;
② 選擇:如果下一條要執行的語句並不是當前語句的後繼語句,這個時候就需要進行選擇控制;
③ 循環;
本節將重點介紹選擇語句,而選擇語句主要包括兩種:
① if語句(if - else );
② switch語句(switch case break);
本文將重點介紹 if 語句
if else 邏輯
if語句主要用來根據條件進行分支控制。如果if語句後面的表達式的結果為真(非0),那麼if語句所包含的部分將被執行;if語句主要有兩種表達形式:
① if ( 表達式) 語句
② if(表達式)語句1 else 語句2
if語句的表達式部分可以使除了結構體外的任意值;
對於①的語法,如果表達式為真(非0),語句將被執行;如果表達式為假,語句將被忽略;
對於②的語法,如果表達式為真,語句1將被執行,語句2將被忽略,如果表達式為假,語句1將被忽略,
如下圖所示的例子,可以知道: if(1),if(-1),if(2)對應的語句都執行了,但是
if(0) 對應的語句並沒有被執行,這是由於:
① 在C語言裡面“非0”表示真,所以1,-1,2均表示真,為真所以其對應的if語句便被執行了;
② 在C語言裡面“0”表示假,所以if(0),對應的語句塊並不會被執行;
如下圖所示的例子,可以知道:
printf("if (1) 2 被執行了\n");
這條語句被執行了,其他的語句都沒有被執行到,
① 其他的語句沒有被執行到,是因為 0 表示假;
② printf("if (1) 2 被執行了\n");被執行了,是因為在C語言裡面,if對應的語句,如果只有一句,可以不用大括號{}括起來,如果if對應的語句有多條的時候,需要使用大括號{}括起來;
如下圖所示的例子可以知道:
① printf("if (1) 1 被執行了\n"); 執行了;
printf("if (1) 2 被執行了\n"); 沒有執行;
原因在於1為真,if對應 的語句執行,else對應的語句不執行;
② printf("if (2) 1 被執行了\n");沒有執行;
printf("if (2) 2 被執行了\n"); 執行了;
原因在於1為假,if對應的語句不執行,else對應的語句執行;
綜上可以看出,else 語句主要執行if 表達式為假的情況;