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,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(表達式){
執行語句
}
如果條件成立則會進入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{
執行語句
}
if語句中的表達式不限于邏輯表達式,可以是任意的數值類型
可以是任意數值,但實際上編譯系統會把這個表達式強制轉成邏輯值,一般地false都為0;1或任何非零數值都是true,具體要看什么語言的。
判斷題
*語句中的表達式不限于邏輯表達式,可以是任意的數值類型。【Y 】
*語句可以用if語句完全代替。【Y 】
*語句的case表達式必須是常量表達式。【 Y】
*語句,switch語句可以嵌套,而且嵌套的層數沒有限制。【Y 】
5.條件表達式可以取代if語句,或者用if語句取代條件表達式。【N 】
*語句的各個case和default的出現次序不影響執行結果。【N 】
7.多個case可以執行相同的程序段。【Y 】
8.內層break語句可以終止嵌套的switch,使最外層的switch結束。【 N】
*語句的case分支可以使用{ }復合語句,多個語句序列。【Y 】
*語句的表達式與case表達式的類型必須一致。【Y 】
11.在switch多分支中,break語句可使流程立即跳出switch語句體。【Y 】
* (a=*必須有else與之配對。【N 】