if語句條件表達式
當把一個指針作為條件表達式時,所要判斷的條件實際上就是“該指針是否為一空指針”.在if,while,for或do/while等語句中,或者在條件表達式中,都可以使用指針.請看下例: if(p) { /*dO something*/ } else { /* dOsomethingelse */ }當條件表達式的值不等于零時,if語句就執行“then”子句(即第一個子句),即“if(/*something*/)”和“if(/*something*/!=0)”是完全相同的.因此,上例和下例也完全相同: if(p !=0) { /* dO something(not anull pointer)*/ } else { /* dOsomethingelse(a null pointer)*/ }以上兩例中的代碼不易讀,但經常出現在許多C程序中,你不必編寫這樣的代碼,但要理解這些代碼的作用.希望能解決您的問題.。
if語句條件表達式
當把一個指針作為條件表達式時,所要判斷的條件實際上就是“該指針是否為一空指針”。在if,while,for或do/while等語句中,或者在條件表達式中,都可以使用指針。請看下例:
if(p)
{
/*dO something*/
}
else
{
/* dOsomethingelse */
}
當條件表達式的值不等于零時,if語句就執行“then”子句(即第一個子句),即“if(/*something*/)”和“if(/*something*/!=0)”是完全相同的。因此,上例和下例也完全相同:
if(p !=0)
{
/* dO something(not anull pointer)*/
}
else
{
/* dOsomethingelse(a null pointer)*/
}
以上兩例中的代碼不易讀,但經常出現在許多C程序中,你不必編寫這樣的代碼,但要理解這些代碼的作用。
希望能解決您的問題。
if語句有幾種表達方式
*語句的一般格式if(表達式) {語句組1;}[else{語句組2;} ](1)if語句中的“表達式”必須用“(”和“)”括起來.(2)else子句(可選)是if語句的一部分,必須與if配對使用,不能單獨使用.(3)當if和else下面的語句組,僅由一條語句構成時,也可不使用復合語句形式(即去掉花括號).*語句的執行過程(1)缺省else子句時當“表達式”的值不等于0(即判定為“邏輯真”)時,則執行語句組1,否則直接轉向執行下一條.(2)指定else子句時當“表達式”的值不等于0(即判定為“邏輯真”)時,則執行語句組1,然后轉向下一條語句;否則,執行語句組2.如圖4-1(b)所示.*語句的嵌套與嵌套匹配原則if語句允許嵌套.所謂if語句的嵌套是指,在“語句組1”或(和)“語句組2”中,又包含有if語句的情況.if語句嵌套時,else子句與if的匹配原則:與在它上面、距它最近、且尚未匹配的if配對.為明確匹配關系,避免匹配錯誤,強烈建議:將內嵌的if語句,一律用花括號括起來.。
條件判斷表達式與if語句的區別
if(表達式){
執行語句
}
如果條件成立則會進入if的作用域并執行其內容,否則該語句結束
if(表達式){
執行語句
}else{
執行語句
}
如果if條件不成立則會進入else的作用域并執行其內容
if(表達式){
執行語句
}else if(表達式){
執行語句
}else if(表達式){
執行語句
}
。。。..
如果if表達式不成立則會進入下一個 else if 的表達式進行再次判斷,成立則進入,否則繼續。。.
在這注意一點,當發生嵌套if結果時如果條件不成立執行的else是根據誰離我進我執行誰的原則.
說完if來講講三元運算符
三元運算符:
表達式 ? 表達式1 : 表達式2
什么意思了?
boolean a =true;
String b = a?"你是true":"抱歉你不是true";
*n(b);
運行結果:
你是true
boolean a =false;
String b = a?"你是true":"抱歉你不是true";
*n(b);
運行結果:
抱歉你不是true
分析:這2段代碼中通過設置a的真假分別得到 “你是true” “抱歉你不是true” 因此我們發現如果 a 是true 會執行?后面的數據賦值, 如果是false(條件不滿足就會執行):好后面的數據賦值。
int a =5;
int b = (5+3)>8?1:2;
*n(b);
結果:2
也可以這么寫
*n((a+3)>8?1:2);
執行流程:如果表達式成立,就執行表達式1,否則執行表示2,是不是和if判斷語句很相似,如果條件成立執行XXX否則執行XXX
那么兩者有什么區別了?
booelan a = true;
if(a)
*n("true");
else
*n("false");
------------------------------------------------
boolean a = true
String b = a?"true":"false";
*n(a);
分析:這只是簡單的判斷,我們發現三元運算符在對簡單的邏輯判斷的代碼量比if判斷結構少,提高了復用性,并且iif判斷語句只是單純的判斷并輸出結果判斷后的結果,而三元運行符,發生了運算符的賦值動作,也就是運算,而if判斷結構沒有,簡單來說就是三元運算符有運算結果,而if判斷結果沒有運算結果,如果是相對復雜的邏輯判斷,三元運算符則不能替代if判斷結果,反之如果是簡單的邏輯判斷三元運算符更加簡潔,根據不同情況來選擇。
if(表達式){
執行語句
}else{
執行語句
}
c語言的If表達式可以有賦值語句嗎
if(a=2)
{
b=2;
c=4;
}
else d=3;
這個語句沒有語法錯誤(可能會有警告),是可以執行的。
但是這個語句永遠沒有機會執行else部分。
a=2賦值表達式的計算結果就是2,當這個表達式出現在if語句邏輯表達式位置上的時候,它的計算結果是被當作邏輯值處理的,在C語言中用整型數表示邏輯量,非零表示“真”,所以這是一個永真式;這個if的邏輯條件永遠不會為假。
也就是說,這里所表達的邏輯條件并不是“a的內容是否等于2”,而是向變量a中送入數據2。