if 処理のマルチブランチ構造の例と長すぎる if ステートメントの欠点の紹介

巴扎黑
リリース: 2017-07-18 15:17:05
オリジナル
3399 人が閲覧しました

例 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 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!