程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C語言條件控制語句(二)

C語言條件控制語句(二)

編輯:關於C語言

3.if...elseif語句

實際應用中常常面對更多的選擇,這時,將if...else擴展一下,就得到if...elseif結構,其一般形式為:

if<表達式1>
    語句1
else if<表達式2>
     語句2
     else if<表達式3>
            語句3
else 語句4

對應的流程圖見圖3-4。

[例3-7]貨物征稅問題,價格在1萬元以上的征5%,5000元以上1萬元以下的征3%,1000元以上5000以下的征2%,1000元以下的免稅,讀入貨物價格,計算並輸出稅金。

分析:讀入price,計算tax,這是一個較復雜的分支結構程序設計(應注意避免重復征稅)。假定貨物的價格在1萬元以上,征稅應分段累計,各段采用不同稅率進行征收。

算法:

若price>=10000
則tax=0.05*(price-10000);price=10000;
否則,若price>=5000
則tax=0.03*(price-5000)+tax;price=5000;
否則,若price>=1000
則tax=0.02*(price-1000)+tax;price=1000;

程序如下:

#include <stdio.h>
main()
{
float price,tax=0;
printf("input price:");
scanf("%f",&price);
if(price>=10000.0)
{
tax=0.05*(price-10000)+tax;price=10000;
}
if(price>=5000.0)
{
tax=0.03*(price-5000)+tax;price=5000;
}
if(price>=1000.00)
{
tax=0.02*(price-1000)+tax;
}
printf("thetax=%10.3f",tax);
}

運行程序:

RUN¿
15000¿
thetax=480.000

4.if語句嵌套

在一個if語句中可以又出現另一個if語句,這稱為if語句的嵌套或多重if語句:

if<表達式1>
if<表達式11>
......
else
語句2;

[例3-8]計算函數

1x>0
y=0x=0
-1x<0

流程圖見圖3-5。

源程序如下:

main()
{
float x,y;
printf("inputx,y:");
scanf("%f",&x);
if(x>=0)
if(x>0)
y=1;
else
y=0;
else
y=-1;
printf("y=%4.0f\n",y);
}

對多重if,最容易犯的錯誤是if與else配對錯誤,例如,寫成如下形式:

y=0;
if(x>=0)
if(x>0)
y=1;
else
y=-1;

從縮排上可以看出,作者希望else是與ifx>=0配對,但是C語言規定else總是與離它最近的上一個if配對,結果,上述算法的流程圖變成圖3-6,完全違背了設計者的初衷。改進的辦法是使用復合語句,將上述程序段改寫如下:

y=0;
if(x>=0)
{
if(x>0)
y=1;
}
else
y=-1;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved