表驅(qū)動是什么:通過查找數(shù)據(jù)表來代替復(fù)雜的邏輯結(jié)構(gòu)(如 if ... else ......, switch等);
成都創(chuàng)新互聯(lián)公司堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站設(shè)計制作、網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的云浮網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!表驅(qū)動的優(yōu)點(diǎn)是: 1、 將編程的重心調(diào)整到解決問題上,而不是復(fù)雜的邏輯判斷;
2、 增加了程序的靈活性,易添加,易修改;
3、數(shù)據(jù)驅(qū)動,如果將數(shù)據(jù)寫入文件,每次啟動時,從文件中讀取,那么,如果要修改一些變量,可能直接修改數(shù)據(jù)文件,而不是去修改程序結(jié)構(gòu);
表驅(qū)動的三種方法:
1、直接驅(qū)動法: 你需要找什么,指定索引,就可以給你立即返回索引在表中對應(yīng)的元素 或者動作;
案例1:(一維查找:即可以代替一層的if結(jié)構(gòu)或者switch結(jié)構(gòu)):
比如你要查找1--12月份每個月的天數(shù),如下:
month_day[12] = {31,30,29,30,30,31,31,31,30,30,31,30};
return month_day[5];
這樣直接對應(yīng)的就是5月的天數(shù);
直接驅(qū)動 是 指 索引 和 需要的得到的數(shù)據(jù) 或者動作是直接對應(yīng)關(guān)系;
案例2:(三維查找:即有三個條件同時限制,如果使用if 或者 switch 可能需要三層嵌套結(jié)構(gòu))
比如一個路由景點(diǎn),收費(fèi)標(biāo)準(zhǔn)因 性別,是否學(xué)生,以及是否殘疾 三項 共同決定門票的價格,那么,我們可以
使用三維數(shù)據(jù)驅(qū)動表來代替 復(fù)雜的上層if 語句;
int entrance_ticket_fee[][][] =
{ { {0,10} , {0,15} }, { {0,15},{15,30} } }
這是一個三維向量,三個維度分別代表了不同的限制,
第一維代表性別,索引 0代表女,1 代表男;
第二維代表是否是學(xué)生,索引 0代表是,索引 1 代表不是;
第三維代表是否是殘疾, 索引 0代表殘疾, 索引 1代表健康;
以上這個三維數(shù)組代表的是:
女孩,學(xué)生,殘疾 0元
女孩 ,學(xué)生,健康 10元;
女孩, 非學(xué)生,殘疾 0 元;
女孩, 非學(xué)生,非常急15元;
男孩,學(xué)生,殘疾 0元;
男孩,學(xué)生,健康,15元;
男孩,非學(xué)生,殘疾 15元;
男孩,非學(xué)生,健康,30元;
通過給定性別,是否是學(xué)生,是否殘疾,來確定其返回值;
return entrance_ticket_fee[0][1][1] //15元;
2、索引驅(qū)動法:
由于很多情況,有分段時,各段情況不一樣,比如 按年齡來分,18歲以下和60歲以上的人 景區(qū)門票按照標(biāo)準(zhǔn)減一半,而 19 -- 59 之
間的人,門票和年齡相對應(yīng),那么,如果還用直接索引法的話,對于0--18歲以下 和 60 歲以上,都對應(yīng)一個數(shù)值,那么其實(shí)可以用
一個索引來 代替,這樣就節(jié)省了空間,這種轉(zhuǎn)化通過函數(shù)來實(shí)現(xiàn);
索引驅(qū)動是對直接驅(qū)動法在節(jié)約空間方面的改進(jìn);
3、階梯訪問表:
很多問題,并不需要一對一,而是要將其進(jìn)行歸類,簡單的例子,比如說按成績分類:
100 - 90 : A
89 - 80 : B
79 -- 60 : C
59 -- 0 : D
給定一個數(shù),判斷其所在的范圍,即可以云階梯訪問。
階梯訪問是通過將要對比的數(shù) (原數(shù)據(jù)) 和 各個區(qū)域的上限(或者下限)進(jìn)行比較,可以選擇順序比較,也可以選擇二分法之類的。
階梯訪問是對 索引驅(qū)動法的在節(jié)約內(nèi)存空間方面的再次改進(jìn)
新聞標(biāo)題:表驅(qū)動的認(rèn)識以及用法——原創(chuàng)---非抄書-創(chuàng)新互聯(lián)
文章地址:http://jinyejixie.com/article2/cshgoc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、App開發(fā)、電子商務(wù)、云服務(wù)器、響應(yīng)式網(wǎng)站、App設(shè)計
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容