Maison >Java >javaDidacticiel >Introduction aux exemples de traitement if de structure multi-branches et aux inconvénients des instructions if trop longues
Exemple 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("我要买一个拖拉机"); } } }
Exemple 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); } } }
Les structures multibranches excessivement longues sont souvent, elle est considérée comme une structure indésirable dans les logiciels car elle viole le principe OCP (principe ouvert et fermé). Chaque fois qu'un nouveau traitement de jugement conditionnel doit être ajouté, une branche if-else doit être ajoutée.
Dans de nombreux cas, l'utilisation d'une structure de table de fonctions est un moyen efficace d'éviter les structures de branches trop longues. Voici un algorithme de solution pour le problème « Loup, mouton et légume traversant la rivière » utilisant une structure de table de fonctions. au lieu d'une structure de branches trop longue. Exemple de structure multi-branches. L'agriculteur peut entreprendre un total de 8 actions, et chaque action correspond à un processus de traitement de transition d'état. Si une structure multi-branches if-else est utilisée, le code de traitement des transitions d'état sera très long. Afin d'éviter des codes de saut de branche trop longs, l'algorithme utilise une structure de table de fonctions. Déclarez d'abord la définition de l'élément de la table de fonctions :
print? typedef bool (*ProcessFuncPtr)(const ItemState& current, ItemState& next); struct ActionProcess{ Action act; ProcessNextFuncPtr processFunc; }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!