巢狀 if() ... else VS if() .. else Ladder
與 if()...else
梯形圖相比,巢狀的 if()...else
語句需要更多的執行時間(它們更慢),因為巢狀的 if()...else
語句在滿足外部條件 if()
語句時檢查所有內部條件語句,而 if()..else
梯形圖將在任何一個時間點停止條件測試 if()
或 else if()
條件語句為真。
一個 if()...else
階梯:
#include <stdio.h>
int main(int argc, char *argv[])
{
int a, b, c;
printf("\nEnter Three numbers = ");
scanf("%d%d%d", &a, &b, &c);
if ((a < b) && (a < c))
{
printf("\na = %d is the smallest.", a);
}
else if ((b < a) && (b < c))
{
printf("\nb = %d is the smallest.", b);
}
else if ((c < a) && (c < b))
{
printf("\nc = %d is the smallest.", c);
}
else
{
printf("\nImprove your coding logic");
}
return 0;
}
在一般情況下,被認為比同等的巢狀 if()...else
更好:
#include <stdio.h>
int main(int argc, char *argv[])
{
int a, b, c;
printf("\nEnter Three numbers = ");
scanf("%d%d%d", &a, &b, &c);
if (a < b)
{
if (a < c)
{
printf("\na = %d is the smallest.", a);
}
else
{
printf("\nc = %d is the smallest.", c);
}
}
else
{
if(b < c)
{
printf("\nb = %d is the smallest.", b);
}
else
{
printf("\nc = %d is the smallest.", c);
}
}
return 0;
}