實例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中文網其他相關文章!