if函數的判斷語句只能判斷多少個可能性
if函數只能判斷兩個可能性,但再靈活應用,就可以判斷多個,不過不是單純的if語句了,還有else if語句。如:
if(a==10)
(語句一);
else (語句二);,這一句就只能有a等于10與a不等于10的兩種情況,但加上else if 語句,如下:
if(a==10)
(語句一);
else if(a==9)
(語句二);
else if(a==8)
(語句三);
else (語句四);,這一句就能判斷a分別是否等于10、9、8與不等于10和9和8的四種情況,如果不嫌麻煩,這個能判斷無盡的可能性。
要想判斷多個可能性,可能使用switch語句,這個在多種可能性的情況下比if ,else 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>=1&&a<=3) 輸入1,2,3 都會跳過 else 語句。這是你的條件規定的。
輸入不是 1,2,3 都會 進入 else 語句 并顯示 請輸入1--9的正整數:
顯示 請輸入1--9的正整數 -- 證明了進入了 else。
至于 scanf("%c",&c); 它讀到了前面輸入數據流中的 殘余 字符,例如空格,回車之類。
如果你 想跳過 空白, 輸入 格式 用 scanf(" %c",&c); 就可以了。
C語言 if 判斷語句
這考的是省略{}的if的作用域
if中的語句多于一句要加{} ,只有一句就可以不加
我把省略的{}給你加上,你就能看清楚了
if(!x)
{
y++; //這只有一句
}
else if(x==0)
{
if(x) //這個 if和下面的 else 合起來算一句,相對于包含它們的 if(x==0) 來說
{
y+=2; // 一句
}
else
{
y+=3; //一句
}
}
用下面的if語句進行判斷不對嗎
1、判斷1的語句:if (scanf ("%d",&a)==1),沒有加{},因此只執行了打開文件的if判斷,而后面的do循環,不管輸入如何,程序都會執行,并從return 0退出,而不會執行判斷2的操作。
2、判斷2的語句:if (scanf ("%d",&a)==2) 后面也沒有加{},因此再改正1的錯誤后,2的錯誤也會發生。估計你的判斷3的語句也同樣沒有加{}。
3、一般不在判斷中進行輸入,這樣有可能會造成第一次輸入的數據,在第二個判斷中不管用。因此,在判斷1的語句之前,加入scanf ("%d",&a); 然后判斷a==1,或a==2,進行不同的操作,如果判斷的次數多,可以使用switch語句。
IF是不是循環語句
if是判斷語句。它的結構一般有以下幾種形式:
一、
if …… then ……
二、
if …… then …… else ……
三、
if …… then
……
else
……
end if
四、
if …… then
……
elseif …… then
……
elseif …… then
……
……
else
……
end if
if判斷語句快還是switch快
if語句每次都需要判斷,而switch則只判斷一次,所以switch快,但也要看情況,一般5個選項(包括default)的情況下,switch和if/else if相同。低于5個選項if快,高于5給選項switch快。
1 兩者本質的區別是if語句更適合于對區間(范圍)的判斷,而switch語句更適合于對離散值的判斷。
2 示例
判斷65分到85分之間的學生有哪些適合用if語句,因為[65,85]是區間。而判斷一個學生的班級是一班、二班還是三班適合用switch語句,因為一班、二班、三班是離散值。
3 擴展
所有的switch語句都可以用if語句來替換(因為if語句只需對每個離散值分別做判斷即可),而并不是所有的if語句都可以用switch語句來替換(因為區間里值的個數是無限的并且switch所接受的值只能是整型或枚舉型,所以不能用case來一一列舉)。
if 條件語句后面的是不是都要跟條件判斷的句子 - 技術問答
if(func_num_args()){? ? /*返回函數的參數的數目*/? ?? ???$types = \" where \";? ?? ???$argus = func_get_args();? ?? ???foreach ($argus as $key => $value){? ?? ?? ?? ?$argus[$key] = \"type = \'\" . $ 。
winlong 發表于 2009-5-29 07:23[i]自己的答案是正確的,不過這個條件是根據你自己的需求來寫的。
轉載請注明出處華閱文章網 » if語句是判斷語句嗎