C語言中if條件語句else省略問題
輸出結果:lAbCeDf2dF。
----這個程序的功能是掃描輸入的字符,如果是小寫字母且輸入字符順序為第偶數個,則轉換為大寫,最后輸出。a++是用于字符計數用的。
a++之前沒有省略else。(C++的關鍵字不能隨便被省略,像if、else這些控制語句的關鍵字更不可能省略。
)if(a%2!=0&&(ch>='a'&&ch<='z')) ch=ch-'a'+'A';是單獨的if語句,沒有else分支判斷,如果條件不滿足則什么也不做。不管它的條件是否滿足,都和下面的a++;等語句無關。
----[原創回答團]。
if只有一句執行的語句時,可以省略{}, 當if沒加{}而有多個執行語句時
是這樣的:
if如果只有一個語句,那你加或不加{}都可以.但如果.if有多條語句.如果你不加{} 那么只有第一條(最接近if)的是if的執行語句.其他都不是
for example:
if(x>0){printf("ok");} 等于if(x>0)printf("ok");
if(x>0){
printf("ok");
i++;}
不等于if(x>0)
printf("ok");
i++;
C++if語句可以省略else嗎
可以,但是圖中情況并不是“不需要處理假的情況”。
而是:若滿足括號中條件,返回x(返回即是函數的結束,不再向下處理);否則,繼續向下走返回y。這個例子可以抽象成這樣一個邏輯圖: | |--if()--return x;---回到上層函數 |return y;--回到上層函數如果說是if(·····)m=a;n=b;elsem=b;n=a;如果去除了else的話 那不是會出錯嗎答:首先糾正你一個錯誤,你的意思應該是if(·····){ m=a; n=b;}else{ m=b; n=a;}不論是if還是else都只管向下一條語句,所以多條語句要用 { } 括起來作為復合語句。
在你舉的這個例子里,else是不能去的。因為如果(……)不滿足,要執行else后的語句。
但是,如果(……)不滿足時,不做任何處理,這時就不需要else了。所以,else是否需要寫全看你要用函數實現什么功能。
說else可以不要,是單從語法角度說的,如果一個if后面沒有else,是沒有語法錯誤的。
IF條件句可以省略END IF
一、if語句
if(表達式) 語句1;
如果表達式的值為非0,則執行語句1,否則跳過語句繼續執行下面的語句。
如果語句1有多于一條語句要執行時, 必須使用{和} 把這些語句包括在其中, 此時條件語句形式為:
if(表達式)
{
語句體1;
}
例如:
if(x>=0) y=x;
if(a||b&&c)
{
z=a+b;
c+=z;
}
C語言中if條件語句else省略問題
輸出結果:
lAbCeDf2dF。
----
這個程序的功能是掃描輸入的字符,如果是小寫字母且輸入字符順序為第偶數個,則轉換為大寫,最后輸出。
a++是用于字符計數用的。a++之前沒有省略else。(C++的關鍵字不能隨便被省略,像if、else這些控制語句的關鍵字更不可能省略。)
if(a%2!=0&&(ch>='a'&&ch<='z')) ch=ch-'a'+'A';是單獨的if語句,沒有else分支判斷,如果條件不滿足則什么也不做。不管它的條件是否滿足,都和下面的a++;等語句無關。
----
[原創回答團]