當前位置:首頁 » 編程語言 » c語言常見條件表達式
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言常見條件表達式

發布時間: 2023-07-13 10:24:52

c語言 條件語句

條件表達示語句

一、if語句
if(表達式) 語句1;
如果表達式的值為非0,則執行語句1,否則跳過語句繼續執行下面的語句。
如果語句1有多於一條語句要執行時, 必須使用{} 把這些語句包括在其中, 此時條件語句形式為:
if(表達式)
{
語句體1,2,3;
}
例如:
if(x>=0) y=x;
if(a||b&&c)
{
z=a+b;
c+=z;
}
if--else語句
除了可以指定在條件為真時執行某些語句外,還可以在條件為假時執行另外一段代碼。在C語句中利用else語句來達到這個目的。
if(表達式) 語句1;
else 語句2;
同樣,當語句1或語句2是多於一個語句時,需要用{}把語句括起來。 例如:
if(x>=0) y=x;
else y=-x;

if--else if--else結構
if(表達式1)
語句1;
else if(表達式2)
語句2;
else if(表達式3)
語句3;
.
else
語句n;
這種結構是從上到下逐個對條件進行判斷,一旦發現條件滿點足就執行與它有關的語句, 並跳過其它剩餘階梯;若沒有一個條件滿足,則執行最後一個else 語句n。最後這個else常起著預設條件的作用。同樣,如果每一個條件中有多於一條語句要執行時,必須使用{}把這些語句包括在其中。
條件語句可以嵌套,這種情況經常碰到,但條件嵌套語句容易出錯,其原因主要是不知道哪個if對應哪個else。
例如:
if(x>20||x<-10)
if(y<=100&&y>x)
printf(Good);
else
printf(Bad);
對於上述情況, Turbo C規定: else語句與最近的一個if語句匹配, 上例中的else與if(y<=100&&y>x)相匹配。為了使else與if(x>20||x<-10)相匹配, 必須用花括弧。如下所示:
if(x>20||x<-10)
{
if(y<=100&&y>x)
printf(Good);
}
else
printf(Bad);

下面舉幾個例子:
1.輸入一個數,如果大於0,輸出plus;如果是負數,輸出negative;如果正好是0,則輸出zero。
main()
{
float num;
scanf(%f,&f);
if(num>0)
printf(plus\n);
else if(num<0)
printf(negative\n);
else
printf(zero\n);
}
先定義兩個變數,然後輸入一個數,然後判斷這個數的范圍,輸出對應的字元串。
2.輸入一個數x,輸出y。其中y是x的絕對值。
main()
{
float x,y;
scanf(%f,&x);
if(x>=0) y=x;
else y=-x;
printf(%f\n,y);
}
Trubo C 2.0把一些常用的功能都寫好了,我們只需要使用就可。例如求絕對值的功能在C的庫裡面就有。看下面的:
#include math.h
main()
{
float x,y;
scanf(%f,&x);
y=fabs(x); /*求x的絕對值,然後賦值給y*/
printf(%f\n,y);
}
這個程序和上面的程序完成的功能是一模一樣的,都是求絕對值。可以看出,用下面這個方法比上面就要好一些。由
於fabs()是一個函數,系統自帶的,所以在使用它的時候,我們必須把它所在的庫文件math.h包含在程序中,即程序最前面一行。類似的還有求開方sqrt(),求指數冪exp()等等,這些與數學方面有關的函數都在math.h裡面。
3.輸入x,輸出y,x和y滿足關系:
x<-5 y=x;
-5<=x<1 y=2*x+5;
1<=x<4 y=x+6;
x>=4 y=3*x-2;
程序如下:
main()
{
float x,y;
scanf(%f,&x);
if(x<-5)
y=x;
else if(-5<=x&&x<1)
y=2*x+5;
else if(1<=x&&x<4)
y=x+6;
else
y=3*x-2;
printf(%f\n,y);
}
這里要說明兩點:
(1).-5<=x&&x<1
不能寫成-5<=x<1;1<=x&&x<4也不能寫成1<=x<4;在C語言中,不能認識連續不等式。
(2).y=2*x+5不能寫成y=2x+5;y=3*x-2也不能寫成y=3x-2;這與我們平時所寫的方法不一樣。

4.輸入三個數x,y,z,然後按從大到小輸出。
main()
{
float x,y,z;
scanf(%f%f%f,&x,&y,&z); if(x>=y&&x>=z) {
printf(%f\t,x);
if(y>=z) printf(%f\t%f\n,y,z); else printf(%f\t%f\n,z,y); }
else if(y>=x&&y>=z) {
printf(%f\t,y);
if(x>=z) printf(%f\t%f\n,x,z); else printf(%f\t%f\n,z,x); }
else
{
printf(%f\t,z);
if(x>=y) printf(%f\t%f\n,x,y); else printf(%f\t%f\n,y,x); }
}
說明:這是一個典型的if語句嵌套結構,如果不使用括弧,那麼if和else的對應關系就亂了。

switch--case語句
在編寫程序時, 經常會碰到按不同情況分轉的多路問題, 這時可用嵌套if -else-if語句來實現, 但if-else-if語句使用不方便, 並且容易出錯。對這種情況, Turbo C提供了一個開關語句。
開關語句格式為:
switch(變數)
{
case 常量1:
語句1或空;
case 常量2:
語句2或空;
.
case 常量n:
語句n或空;
default:
語句n+1或空;
}
執行switch開關語句時,將變數逐個與case後的常量進行比較,若與其
中一個相等,則執行該常量下的語句,若不與任何一個常量相等,則執行default後面的語句。
注意:
1.switch中變數可以是數值,也可以是字元,但必須是整數。
2.可以省略一些case和default。
3.每個case或default後的語句可以是語句體,但不需要使用{}括起來。 例如:
main()
{
intx,y;
scanf(%d,&x);
witch(x)
{
case 1:
y=x+1;
break; /*退出開關語句,遇到break才退出*/
case 4:
y=2*x+1;
break;
default:
y=x--;
break;
printf(%d\n,y);
}
用開關語句編的程序一定可以用if語句做。那麼在什麼情況下需要用switch語句呢?一般在出現比較整的情況下或者能轉化成比較整數的情況下使用。看下面的例子:
例子:一個學生的成績分成五等,超過90分的為'A',80-89的為'B',70-79為'C',60-69為'D',60分以下為'E'。現在輸入一個學生的成績,輸出他的等級。
(1).用if語句
main()
{
float num;
char grade;
scanf(%d,&num);
if(num>=90) grade='A';
else if(num>=80&&num<89) grade='B';
else if(num>=70&&num<79) grade='C';
else if(num>=60&&num<69) grade='D';
else grade='E';
printf(%c,grade);
}
(2).用switch語句
main()
{
intnum;
char grade;
scanf(%d,&num);
num/=10;
switch(num)
{
case 10:
case 9:
grade='A';
break;
case 8:
grade='B';
break;
case 7:
grade='C';
break;
case 6:
grade='D';
break;
default:
grade='E';
break;
}
printf(%c,grade);
}

說明一點,並不是每個case裡面有都語句,有時侯裡面是空的,就好象這一題。switch語句執行的順序是從第一case判斷,如果正確就往下執行,直到break;如果不正確,就執行下一個case。所以在這里,當成績是100分時,執行case 10:然後往下執行,grade='A';break;退出

❷ 求c語言表達式大全

C語言語法參考大全(流程式控制制語句) ----------------------------------------------------------------------------------------------------------01條件語句的一般形式為: if(表達式) 語句1; else 語句2; 上述結構表示: 如果表達式的值為非0(TURE)即真, 則執行語句1, 執行完語 句1從語句2後開始繼續向下執行; 如果表達式的值為0(FALSE)即假, 則跳過語句1而執行語句2。 注意: 1. 條件執行語句中"else 語句2;"部分是選擇項, 可以預設, 此時條件語句變成: if(表達式) 語句1; 表示若表達式的值為非0則執行語句1 , 否則跳過語句1繼續執行。 2. 如果語句1或語句2有多於一條語句要執行時, 必須使用"{"和"}" 把這些語句包括在其中, 此時條件語句形式為: if(表達式) { 語句體1; } else { 語句體2; } 3. 條件語句可以嵌套, 這種情況經常碰到, 但條件嵌套語句容易出錯, 其原因主要是不知道哪個if對應哪else。 例如: if(x>20||x<-10) if(y<=100&&y>x) printf("Good"); else printf("Bad"); 對於上述情況, Turbo C2.0規定: else語句與最近的一個if語句匹配, 上例中的else與if(y<=100&&y>x)相匹配。為了使else與if(x>20||x<-10)相匹配, 必須用花括弧。如下所示: if(x>20||x<-10) { if(y<=100&&y>x) printf("Good"); } else printf("Bad"); 4. 可用階梯式if-else-if結構。 階梯式結構的一般形式為: if(表達式1) 語句1; else if(表達式2) 語句2; else if(表達式3) 語句3; . . else 語句n; 這種結構是從上到下逐個對條件進行判斷, 一旦發現條件滿點足就執行與它有關的語句, 並跳過其它剩餘階梯; 若沒有一個條件滿足, 則執行最後一個else語句n。最後這個else常起著"預設條件"的作用。 同樣, 如果每一個條件中有多於一條語句要執行時, 必須使用"{"和"}"把這 些語句包括在其中。 02switch語句 在編寫程序時, 經常會碰到按不同情況分轉的多路問題, 這時可用嵌套if-else-fi語句來實現, 但if-else-if語句使用不方便, 並且容易出錯。對這種情況, Turbo C2.0提供了一個開關語句。 開關語句格式為: switch(變數) { case 常量1: 語句1或空; case 常量2: 語句2或空; . . . case 常量n; 語句n或空; default: 語句n+1或空; } 執行switch開關語句時, 將變數逐個與case後的常量進行比較, 若與其中一個相等, 則執行該常量下的語句, 若不與任何一個常量相等, 則執行default 後面的語句。 注意: 1. switch中變數可以是數值, 也可以是字元。 2. 可以省略一些case和default。 3. 每個case或default後的語句可以是語句體, 但不需要使用"{"和"}"括起來。 下例的switch中變數為整數型。 main() { int test; for(test=0; test<=10; test++) { switch(test) /*變數為整型數的開關語句*/ { case 1: printf("%d ", test); break; /*退出開關語句*/ case 2: printf("%d ", test); break; case 3: printf("%d ", test); break; default: puts("Error"); break; } } } 下例的switch中變數為字元型。 #include<stdio.h> main() { char c; while(c!=27) /*循環直到按Esc鍵結束*/ { c=getch(); /*從鍵盤不回顯接收一個字元*/ switch(c) { case A: /*接收的字元為A*/ putchar(c); break; /*退出開關語句*/ case B: putchar(c); break; default: /*接收的字元非A和B*/ puts("Error"); break; } } } 03for循環 for循環是開界的。它的一般形式為: for(<初始化>; <條件表過式>; <增量>) 語句; (1)初始化總是一個賦值語句, 它用來給循環控制變數賦初值; (2) 條件表達式是一個關系表達式, 它決定什麼時候退出循環; (3) 增量定義循環控制變數每循環一次後按什麼方式變化。這三個部分之間用";"分開。 例如: for(i=1; i<=10; i++) 語句; 上例中先給i賦初值1, 判斷i是否小於等於10, 若是則執行語句, 之後值增加1。再重新判斷, 直到條件為假, 即i>10時, 結束循環。 注意: 1. for循環中語句可以為語句體, 但要用"{"和"}"將參加循環的語句括起來。 2. for循環中的"初始化"、"條件表達式"和"增量"都是選擇項, 即可以預設, 但";"不能預設。省略了初始化, 表示不對循環控制變數賦初值。 省略了條件表達式, 則不做其它處理時便成為死循環。省略了增量, 則不對循環控制變數進行操作, 這時可在語句體中加入修改循環控制變數的語句。 3. for循環可以有多層嵌套。 例16: main() { int i, j, k; printf("i j k "); for (i=0; i<2; i++) for(j=0; j<2; j++) for(k=0; k<2; k++) printf(%d %d %d ", i, j, k); } 04while循環與do-while 循環 while循環的一般形式為: while(條件) 語句; while循環表示當條件為真時, 便執行語句。直到條件為假才結束循環。並繼續執行循環程序外的後續語句. 例17: #include<stdio.h> main() { char c; c=; /*初始化c*/ while(c!=X0D) /*回車結束循環*/ c=getche(); /*帶回顯的從鍵盤接收字元*/ } 上例中, while循環是以檢查c是否為回車符開始, 因其事先被初始化為空,所以條件為真, 進入循環等待鍵盤輸入字元; 一旦輸入回車, 則c=X0D, 條件為假, 循環便告結束。 與for循環一樣, while循環總是在循環的頭部檢驗條件, 這就意味著循環可能什麼也不執行就退出。 注意: 1. 在while循環體內也允許空語句。 例如: while((c=getche())!=X0D); 這個循環直到鍵入回車為止。 2. 可以有多層循環嵌套。 3. 語句可以是語句體, 此時必須用"{"和"}"括起來。 例18: #include<stdio.h> main() { char c, fname[13]; FILE *fp; /*定義文件指針*/ printf("File name:"); /*提示輸入文件名*/ scanf("%s", fname); /*等待輸入文件名*/ fp=fopen(fname, "r"); /*打開文件只讀*/ while((c=fgetc(fp)!=EOF) /*讀取一個字元並判斷是否到文件結束*/ putchar(c); /*文件未結束時顯示該字元*/ } 05do-while 循環 do-while 循環的一般格式為: do 語句; while(條件); 這個循環與while循環的不同在於: 它先執行循環中的語句, 然後再判斷條件是否為真, 如果為真則繼續循環; 如果為假, 則終止循環。因此, do-while循環至少要執行一次循環語句。同樣當有許多語句參加循環時, 要用"{"和"}"把它們括起來。 06continue 語句 continue語句的作用是跳過循環本中剩餘的語句而強行執行下一次循環。 continue語句只用在for、while、do-while等循環體中, 常與if條件語句一起使用, 用來加速循環。 main() { char c; while(c!=0X0D) /*不是回車符則循環*/ { c=getch(); if(c==0X1B) continue; /*若按Esc鍵不輸出便進行下次循環*/ printf("%c ", c); } } 07break語句 break語句通常用在循環語句和開關語句中。當break用於開關語句switch中時, 可使程序跳出switch而執行switch以後的語句; 如果沒有break語句, 則將成為一個死循環而無法退出。 當break語句用於do-while、for、while循環語句中時, 可使程序終止循環而執行循環後面的語句, 通常break語句總是與if語句聯在一起。 即滿足條件時便跳出循環。 main() { int i=0; char c; while(1) /*設置循環*/ { c=; /*變數賦初值*/ while(c!=13&&c!=27) /*鍵盤接收字元直到按回車或Esc鍵*/ { c=getch(); printf("%c ", c); } if(c==27) break; /*判斷若按Esc鍵則退出循環*/ i++; printf("The No. is %d ", i); } printf("The end"); }

❸ c語言 條件運算符

條件運算符(? : )是一個三目運算符,即有三個操作數。

使用條件運算符(?:)可以實現 If else 的功能,其一般形式為:

表達式1 ? 表達式2 : 表達式3

例如條件語句:

if(a>b) max=a;
else max=b;
可用條件表達式寫為

max=(a>b) ? a : b;

執行該語句的語義是:如a>b為真,則把a賦予max,否則把b 賦予max。

if條件語句例子如下:

知識擴展:

  • 條件運算符的運算優先順序低於關系運算符和算術運算符,但高於賦值符

  • 條件運算符?和:是一對運算符,不能分開單獨使用。

  • 條件運算符的結合方向是自右至左。

❹ C語言中條件表達式和邏輯表達式的意義是什麼他們的取值如何

邏輯表達式用於判斷條件是否成立,表達式的值為 零(假) 或 非零(真)

使用 ==、!=、>、>=、<、<=、! 運算符的表達式均稱為邏輯表達式。

條件表達式形如: <exp1> ? <exp2> : <exp3>

取值:若exp1的值非零 則取exp2的值 否則取exp3的值

說明:exp1、exp2、exp3為必要的表達式