C語言:if語句的巢狀
阿新 • • 發佈:2019-01-08
任務程式碼:
關於分段函式的求解:
題目:
#include <stdio.h> #include <math.h> int main ( ) { double x, y; scanf("%lf", &x); if (x<2) y=x; else if(x<6) //此處已經自然滿足x>=2的條件 y=x*x+1; else if(x<10) y=sqrt(x+1); else //自然是x>=10的時候執行下一語句 y=1/(x+1); printf("%lf\n", y); return 0; }
油量監控:
#include <stdio.h> int main ( ) { double fuel_reading; printf("輸入油量表讀數(0-1): "); scanf("%lf", &fuel_reading); //下面加上花括號使if-else能夠正確匹配 if (fuel_reading < 0.75) { if (fuel_reading < 0.25) printf("油量低,注意!\n"); } else { printf("高油量,不必停!\n"); } return 0; } }
一元二次方程的求解:
#include <stdio.h> #include <math.h> int main ( ) { float a,b,c,d,pr,pi,x1,x2; scanf("%f %f %f",&a,&b,&c); printf("a=%f,b=%f,c=%f\n",a,b,c); if(a==0) { if(b!=0) printf("only one solution x=%f\n", -c/b); else if(c!=0) printf("no solution\n"); else printf("x is any value\n"); } else { d=b*b-4*a*c; if(d>=0) { x1=(-b+sqrt(d))/(2*a); x2=(-b-sqrt(d))/(2*a); printf("x1=%6.2f, x2=%6.2f\n",x1,x2); } else { pr=-b/(2*a); pi=sqrt(-d)/(2*a); printf("x1=%6.2f +%6.2fi\n",pr,pi); printf("x2=%6.2f -%6.2fi\n",pr,pi); } } return 0; }
執行情況:
知識總結:
多分支結構經常用於求分段函式的值。
另外能用多分鐘儘量拒絕單分支因為這樣可以實誠徐避免重複運算!
為了避免誤用,最好使每一層內嵌的if語句都有對應的else
心得體會:
iif語句的巢狀,很考驗一個人的邏輯歸納能力,網內網運用很好的if語句巢狀,能將繁瑣的程式碼簡化很多,這是一種有效的程式碼優化過程的!
在未來的學習中,多實用if語句的巢狀,可以馴良一個人統籌事情的完整能力!