多分支塊if 語句與多個單行if語句的區別
多分支塊if 語句:
if(a){xxx}
else if(b){yyy}
else 。
這樣的話,加入a為真,執行完xxx之后會跳出if判斷,也就是跳過else if和else。(不會判斷b)
只有a為假時,才會判斷b。
多個單行if語句:
if(a){xxx}
if(b){yyy}
if(c){zzz}
這樣會判斷三次,a為真,執行xxx,否則判斷b,b為真,執行yyy,否則判斷c,c為真,執行zzz
他們的邏輯是不一樣的,不同情況下會產生不同的作用。
這么說,能明白區別了么?
用塊if語句完成輸入三個數,找出其中的最大數和最小數并輸出
代碼比較簡單,我就直接寫在main函數里面了。
1、輸入三個整型數,輸出最大值
代碼如下:
#include
#define NUM 3
int main()
{
int i = 0;
int aData[NUM] = {0};
printf("Input %d integer: ", NUM);
for(i = 0; i {
scanf("%d", &aData[i]);
}
int nMax = aData[0];
for(i = 1; i {
if(nMax {
nMax = aData[i];
}
}
printf("The max : %d \n", nMax);
return 0;
}
2、輸入三個整型數,輸出最小值
代碼如下:
#include
#define NUM 3
int main()
{
int i = 0;
int aData[NUM] = {0};
printf("Input %d integer: ", NUM);
for(i = 0; i {
scanf("%d", &aData[i]);
}
int nMin = aData[0];
for(i = 1; i {
if(nMin >aData[i])
{
nMin = aData[i];
}
}
printf("The min : %d \n", nMin );
return 0;
}
以上就是取最大值或者最小值的簡單代碼,其中通過宏定義 NUM 可以修改輸入的數據數量,結合for循環的運用,使代碼更加靈活。
在塊if語句結構中,if語句的嵌套可以是多層的,內層條件語句可以不必
不是很明白你想問的,一般來說內外兩層的關系不是很大。比如說:
1 內外相關
第一層:IF(張三是男生)
第二層:IF(張三年齡18歲)DO 這兩層是相關的,對吧,都和張三有關。是找出一個叫張三的18歲男生,DO。
2 內外無關
第一層;IF張三是男生
第二層:IF李四是女生 { DO}
這兩層IF是完全無關的,是在張三是男生情況下如果李四是女生的就DO。
總結:一般來說兩層IF的關系主要看條件判斷的初衷設計。只要不互相矛盾即可,比如 :
第一層:IF 張三年齡小于18歲
第二層:IF張三年齡大于20歲 DO //在張三小于18歲情況下,張三如果大于20歲就DO。這不是矛盾么。