首頁  >  文章  >  Java  >  if處理多分支結構實例介紹及過長的if語句的缺點

if處理多分支結構實例介紹及過長的if語句的缺點

巴扎黑
巴扎黑原創
2017-07-18 15:17:053404瀏覽

實例1

import java.util.Scanner;/**
 * Created by liwenj on 2017/7/17. */public class test7 {public static void main(String[] args) {
        Scanner input=new Scanner(System.in);int money=input.nextInt();if(money>500){
            System.out.println("我要买一个凯迪拉克");
        }else if(money>100){
            System.out.println("我要买一个帕萨特");
        }else if(money>50){
            System.out.println("我要买一个伊兰特");
        }else if(money>10){
            System.out.println("我要买一个奥拓");
        }else{
            System.out.println("我要买一个拖拉机");
        }
    }
}

實例2

import java.util.Scanner;/**
 * Created by liwenj on 2017/7/17. */public class test8 {public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("请输入是否是会员");
        String huiyuan = input.next();boolean f = huiyuan.equals("yes");
        System.out.println("请输入消费金额");double money = input.nextDouble();if (f) {if (money >= 200) {double dazhe = money * 0.75;
                System.out.println("你消费:" + dazhe);
            } else {double dazhe = money * 0.8;
                System.out.println("你消费:" + dazhe);
            }

        } else if (money >= 100) {double dazhe = money * 0.9;
            System.out.println("你消费:" + dazhe);
        }else{
            System.out.println("你消费:"+money);
        }

    }

}

 

過長的多重分支結構常被視為軟體中的不良結構,因為它違反了OCP原則(開放、封閉原則),每當需要新增一種條件判斷處理時,就要新增一個if-else分支。

在許多情況下,使用函數表結構是避免過長的分支結構的有效方法,下面以「狼、羊和菜過河」問題的求解演算法中用到函數表結構代替過長的多分支結構的例子。農夫總共可以採取8種動作,每種動作都對應一個狀態轉換處理流程。如果採用if-else多分支結構,處理狀態轉換的程式碼將會非常長,為了避免過長的分支跳轉程式碼,演算法採用了函數表結構。首先宣告函數表項的定義:

print?
typedef bool (*ProcessFuncPtr)(const ItemState& current, ItemState& next);  
struct ActionProcess{  
    Action act;  
    ProcessNextFuncPtr processFunc;  
}


#

以上是if處理多分支結構實例介紹及過長的if語句的缺點的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn