首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C >> C 語言問答

C語言分段函數四種寫法:if / if-else / 嵌套if / switch

     編輯:C 語言問答

題目

y = x ( -5 < x < 0 )
y = x - 1 ( x = 0 )
y = x - 1 ( 0 < x < 10 )

四種實現

1. 多條獨立 if

if (x > -5 && x < 0) y = x;
if (x == 0) y = x - 1;
if (x > 0 && x < 10) y = x - 1;

2. if-else if 鏈(推薦)

if (x > -5 && x < 0) y = x;
else if (x >= 0 && x < 10) y = x - 1;
else y = 0; // 超出範圍默認處理

3. 嵌套 if

if (x >= -5 && x < 10) {
    if (x < 0) y = x;
    else y = x - 1; // x==0 或 x>0 同樣處理
}

4. switch(技巧:映射區間)

int zone;
if (x > -5 && x < 0) zone = 1;
else if (x >= 0 && x < 10) zone = 2;
else zone = 0;

switch (zone) {
    case 1: y = x; break;
    case 2: y = x - 1; break;
    default: y = 0;
}

優缺點對比

寫法優點缺點
獨立 if直觀條件重複求值,效率低
if-else if短路、互斥、可讀性好區間多時代碼長
嵌套 if邏輯層次清晰過深難維護
switch跳轉表優化、結構清晰需將區間離散化為整數

工程建議: 區間判斷優先用 if-else if;離散值枚舉用 switch;嵌套不超 3 層。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved