分支结构程序案例c语言,C语言学习之三——分支结构程序
運算符優(yōu)先級:
如下所示:
image.png
關(guān)系運算符和表達式
關(guān)系運算符定義:在程序中經(jīng)常需要比較兩個量的大小關(guān)系,以決定程序下
一步的工作。因此使用關(guān)系運算符進行比較(注:比較后的返回值為boolean值,即0或1(真為1, 假為0))
關(guān)系運算符: 第一類: ; >=; 第二類: ==; != (注:關(guān)系運算符都是雙目運算符,其結(jié)合性均為左結(jié)合。且第一類的優(yōu)先級高于第二類的優(yōu)先級。)
關(guān)系表達式的一般形式: 表達式 關(guān)系運算符 表達式 (關(guān)系表達式允許出現(xiàn)嵌套的情況(例如,a > (b > c)))
//例
/#include
void main()
{
int a = 1, b = 2, c = 6;
char i = ‘k’;
printf(“%d,%d”, a > b, ‘a(chǎn)’ + 5 < i)
printf(“%d”, a == b == c + 5) //(注:左結(jié)合性)
}
//輸出:0, 1
0
邏輯運算符:&&(與運算符)、|| (或運算符)、!(非運算符)(注:&&和 || 均為雙目運算符,有左結(jié)合性。 !為單目運算符,具有右結(jié)合性)優(yōu)先級為:!最高,&&和 || 相同(相同優(yōu)先級按結(jié)合性判定哪個先執(zhí)行)
邏輯運算得到的值也是boolean值(用”0”(假);”1”(真)表示)。
1)與運算 &&:參與運算的兩個量都為真時,結(jié)果才為真,否則為
假。
2)或運算||:參與運算的兩個量只要有一個為真,結(jié)果就為真。
兩個量都為假時,結(jié)果為假。
3)非運算!:參與運算量為真時,結(jié)果為假;參與運算量為假時,
結(jié)果為真。
邏輯表達式: 表達式 邏輯運算符 表達式 (邏輯表達式允許出現(xiàn)嵌套的情況)
if 語句:用if語句可以構(gòu)成分支結(jié)構(gòu)。它根據(jù)給定的條件進行判斷,以決
定執(zhí)行某個分支程序段。
if語句有三種形式:
1)if(表達式) 語句;(如果括號內(nèi)的表達式為真,怎執(zhí)行后面的語句,否則略過,因此括號內(nèi)的表達式的返回值為必須是能夠表示“真”或“假”的性質(zhì),在C語言中,除零以外的所有合法字符都為真)(注2:if后面的表達式必須用括號()括起來)
image.png
2)if – else:
if(表達式)
語句1;
else
語句2;
image.png
3)if – else – if:
image.png
if 語句注意事項:
1)在三種形式的if語句中,在if關(guān)鍵字之后均為表達式。該表達式通常是邏輯表達式或關(guān)系表達式,但也可以是其它表達式,如賦值表達式等,甚至也可以是一個變量。
//例
/#include
void main()
{
int a, b;
scanf(“%d%d”, &a, &b);
if( a = b )
{
printf("%d\n", a);
}
}//在b 不等于0的情況下輸出 b的值
/#include
void main()
{
int a, b;
scanf(“%d%d”, &a, &b);
if( a == b )
{
printf("%d\n", a);
}
}//在a等于b的情況下輸出 a的值
2)在if語句中,條件判斷表達式必須用括號括起來,在語句之后必須加分號。
3)在if語句的三種形式中,所有的語句應為單個語句,如果要想在滿足條件時執(zhí)行一組(多個)語句,則必須把這一組語句用{}括起來組成一個復合語句。但要注意的是在}之后不能再加分號。
//例
/#include
void main()
{
int a, b;
scanf(“%d%d”, &a, &b);
if(a>b)
{
a++;
b++;
}
else
{
a=0;
b=10;
}
}
if 語句的嵌套:當if語句中的執(zhí)行語句又是if語句時,則構(gòu)成了if 語句嵌套的情形。
image.png
以上兩種形式等價。
在嵌套內(nèi)的if語句可能又是if-else型的,這將會出現(xiàn)多個if和多個else重疊的情況,這時要特別注意if和else的配對問題。(else總是和它前面最近的if相配對,為了消除歧義,在書寫時就應注意對齊。)
image.png
條件運算符和條件表達式
條件運算符:條件運算符為“?和:”,它是一個三目運算符,即有三個參與運算的量。
條件表達式的一般形式:表達式1?表達式2:表達式3 (求值規(guī)則:如果表達式1的值為真,則表達式2的值為整個條件表達式的值,否則表達式3的值為整個條件表達式的值)
//例: if(a>b) max=a; else max=b; 等價于 max=(a>b)?a:b;(語義是:如a>b為真,則把a賦給max,否則把b 賦給max。)
使用條件表達式的注意事項:
1)條件運算符的運算優(yōu)先級低于關(guān)系運算符和算術(shù)運算符,但高于賦值運算符。
因此,max=(a>b)?a:b,可以去掉括號而寫為:max=a>b?a:b
2) 條件運算符”?”和”:”是一對運算符,不能分開單獨使用。
3)條件運算符的結(jié)合方向是自右至左。
例如:a>b?a:c>d?c:d,應理解為:a>b?a:(c>d?c:d) (該方式是條件表達式的嵌套形式。)
//例,
/#include
void main()
{
int a, b, c, d, max;
printf("Input four numbers: \n");
scanf("%d, %d, %d, %d", &a, &b, &c, &d);
max = (a > b) ? a : ((c > d) ? c: d);
printf("The maximum number is: %d\n",max);
}
//輸入:15 , 16, 2, 3
//輸出:The maximum number is: 3
//輸入:16, 15, 2, 3
//輸出:The maximum number is: 16
switch語句
其語義是:計算表達式的值。并逐個與其后的常量表達式值相比較, 當表達式的值與某個常量表達式的值相等時,即執(zhí)行其后的語句,然后不再進行判斷,繼續(xù)執(zhí)行后面所有case后的語句。如表達式的值與所有case后的常量表達式均不相同時,則執(zhí)行default后的語句。
(注:當表達式中的值與常量表達式的值相等時,才執(zhí)行其后的語句,否則跳過該case后的語句,進行下一條語句,注意case后面的只能是常量表達式不能使邏輯表達式,關(guān)系表達式等等。)(為了節(jié)省CPU運行時間,還可在語句后加上“break;”來跳出switch語句。)
image.png
使用switch語句的注意事項:
1)在case后的各常量表達式的值不能相同,否則會出現(xiàn)錯誤。
2)在case后,允許有多個語句,可以不用{}括起來。
3)各case和default子句的先后順序可以變動,而不會影響程序執(zhí)行結(jié)果。
4)default子句可以省略不用。
總結(jié)
以上是生活随笔為你收集整理的分支结构程序案例c语言,C语言学习之三——分支结构程序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎么在快手直播欢乐斗地主
- 下一篇: c语言四个数找大wxyz,2015年计算