2019最新C語言知識整理(選擇結構)


2019最新C語言知識整理(選擇結構)


通過學習第三波知識你需要掌握:

  1. 關係運算符與關係表達式
  2. 邏輯運算符與邏輯表達式
  3. if語句
  4. switch語句

難點:

  1. if語句的嵌套
  2. switch語句的使用

關係運算符:

其實關係運算符大家在實際的生活中應該都有接觸過,比如a>c,如果a為4且b為3則返回真,否則就返回假。

關係運算符及其優先級:

C語言提供的關係運算符主要為6種,分別是:

< (小於) ; <= (小於等於) ; >( 大於) ; >= (大於等於)

以上四個優先級相同(高)

== 等於;!= 不等於

這兩個優先級相同(低)

關係表達式:

a>b;
(a+b)>(b+c);
(a=3)>(b=8);
'a'>'b';

在C語言中用整數1表示邏輯值為真,用整數0表示邏輯值為假。比如(a=3)>(b=8);由於邏輯值為假所以返回0。

如果你對小編的文章感興趣可以關注小編哦!!!

求值過程:

(1)計算運算符表達式兩邊的值;

(2)比較這兩個值的大小,如果是整形的話就直接比較大小,如果是字符類型的話就比較ASCII值。

3>4!=2 //先判斷3>4結果為假(0),然後在判斷0!=2結果為真(1) 

'a'>'b'//比較ASCII值,97>98所以結果為0
2+5!=3>4-1//等價於(2+5)!=(3>(4-1))結果為1

邏輯運算符:

C語言提供了三種邏輯運算符即:&&(相當於“並且”),||(相當於“或者”),!(相當於否定)

直接用代碼來理解這三個表達式吧:

#include <stdio.h>
int main()
{
\tint a,b,c,x;
\ta=5;
\tb=7;
\tc=8;
\tx=(a>1)&&(b>6);
\tprintf("%d\\n",x);//兩個條件都為真,返回1
\tx=(a<1)&&(b>6);
\tprintf("%d\\n",x);//有一個條件為假,返回0
\tx=(a>1)||(b>6);
\tprintf("%d\\n",x);//兩個條件都為真,返回1
\tx=(a<1)||(b>6);
\tprintf("%d\\n",x);//至少有一個條件為真,返回1
\tx=(a<1)||(b<6);
\tprintf("%d\\n",x);//兩個條件都為假,返回0
\tprintf("%d\\n",a!=1);//不等於1返回真即1
\treturn 0;
}
運行結果:
1
0
1
1
0
1/<stdio.h>

三目運算符:

例如:

a>b?c:d //a如果大於b就返回c,否則就返回d

結合方式:自左向右結合

a>b?a:c>d?c:d 等價於:a>b?a:(c>d?c:d )

if控制語句:

if語句一般有三種形式:

\t//單分支
\tif(條件表達式)
\t{
\t\t語句
\t}
\t//雙分支
\tif(條件表達式)
\t{
\t\t語句
\t}
\telse
\t{
\t\t語句
\t}
\t//多分支
\tif(條件表達式)
\t{
\t\t語句
\t}
\telse if()\t{\t語句\t}
\telse if()\t{\t語句\t}
\telse if()\t{\t語句\t}

\telse if()\t{\t語句\t}
\telse {\t語句\t}
\t//嵌套
\tif(條件表達式)
\t{
\t\tif(條件表達式){}
\t\telse
\t\t{
\t\t}
\t}
\telse
\t{
\t\tif(條件表達式){}
\t\telse
\t\t{
\t\t}
\t}

上面寫這麼多還是直接上例子讓大家瞭解if和else的運用吧。比如用if嵌套語句求3個數中的最大值。

#include <stdio.h>
int main()
{
\tint num1,num2,num3,max;
\tprintf("請依次輸入三個整數:");
\tscanf("%d%d%d",&num1,&num2,&num3);
\tif(num1>num2)//先比較num1和num2然後在和num3作比較,將大的那一個值賦值給max
\t{
\t\tif(num1>num3)
\t\t{
\t\t\tmax=num1;
\t\t}
\t\telse
\t\t{
\t\t\tmax=num2;
\t\t}
\t}
\telse
\t{
\t\tif(num2>num3)
\t\t{

\t\t\tmax=num2;
\t\t}
\t\telse
\t\t{
\t\t\tmax=num3;
\t\t}
\t}
\tprintf("%d\\n",num3);
\treturn 0;
}/<stdio.h>

利用嵌套語句時間簡單的比較問題,你也可以用三目運算符解決實際的問題。這裡小編就不列出三目運算符的解法了,畢竟編程都是要靠自己去思考才能有所長進。

switch語句的基本格式:

switch(表達式)
{
case常量表達式:語句1
case常量表達式:語句2
.........
default:語句
}

當表達式的值與某個case後的常量值相等的時候,執行此case分支語句,如果有break則跳出全部循環,如果沒有就執行下一條case分支語句。

表達式中的值和常量表達式的值只能是整型或者字符型。並且case分支的常量表達式的值應該不同。

break也稱間斷語句,作用是跳出整個循環。比如說語句1後加了一個break後,那麼就跳出了switch這條語句,而不會去執行語句1後面的語句。

下面小編用一個小例子來教大家理解switch語句的運用吧。

#include <stdio.h>
int main()
{
\tint sorce,grade;
\tprintf("請輸入單科成績(0~100):");
\tscanf("%d",&sorce);
\tgrade=sorce/10;
\tswitch(grade)
\t{
\tcase 10:printf("grade=A\\n");break;
\tcase 9:printf("grade=A\\n");break;
\tcase 8:printf("grade=B\\n");break;
\tcase 7:printf("grade=C\\n");break;
\tcase 6:printf("grade=C\\n");break;
\tcase 5:printf("grade=D\\n");break;
\tcase 4:printf("grade=D\\n");break;
\tcase 3:printf("grade=D\\n");break;
\tcase 2:printf("grade=D\\n");break;
\tcase 1:printf("grade=E\\n");break;
\tcase 0:printf("grade=E\\n");break;
\t}
return 0;
}/<stdio.h>

如果沒有加break的話,如果輸入55,那麼他就會顯示:D D D D E E但是後面有break後那麼它執行完那條語句後就直接跳出,也就是隻輸出D。

到這裡小編這第三波知識也就整理完了,是否對你有一些幫助呢??小編後續還會持續更新更多的知識整理,如果你感興趣的話,可以關注小編,私信回覆小編“資料”,小編會將自己整理的一套C語言資料免費分享給大家。希望大家學習愉快!!!


分享到:


相關文章: