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語句中的表達式不限于邏輯表達式,可以是任意的數值類型
可以是任意數值,但實際上編譯系統會把這個表達式強制轉成邏輯值,一般地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 】
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程序中,你不必編寫這樣的代碼,但要理解這些代碼的作用。
希望能解決您的問題。
在C語言的if 語句中,用作判斷的表達式是( )a關系表達式 b邏輯表達
一般情況下這個是選邏輯表達式的。因為if是邏輯判斷,但如果放在c和C++語言中,所有非零運算結果均識為true,不須強制轉換,所以這里選d是正確的。但是在其他語言中是不正確的。
它主要考查的內容就是,C/CPP中并沒有真正的布爾值,只是將非零數認作false而已。所以你可以理解為if是判斷非零數即可,或者理解為其它。實際上,在C/CPP中的布爾值是用int表示的。也就是16位進制數表示,并不是單純的一個bit。
如
int a =5;
if(a)
語句塊;
該代碼在C/CPP中是合法的,但是C#中是不合法的,無法通過編譯器編譯。所以若在C/CPP中選邏輯表達式時,很明顯算術達式是不能成立的。而關系表達式的結果就是邏輯值(也可以將邏輯值認為是邏輯表達式)。
比如
int a=5, b=6;
a>b是關系表達式,結果是邏輯值false,但false可以看作是邏輯值,也可以看作是邏輯表達式。而a-b則是算術表達式,三者均可以做為if的判斷條件。所以即使在C#語言中,嚴格區分的情況下,關系表達式也是被認為可行的,而邏輯表達式也是可以得到邏輯結果的。所以這里應當是選擇了做任意表達式。