决策生成器的java实现

来源:互联网 发布:如何评价红楼梦 知乎 编辑:程序博客网 时间:2024/05/23 12:16

方法一:使用enum方法。

/** * 决策生成器  * from《java完全手册》 *///枚举类型import java.util.Random;enum Answers {NO, YES, MAYBE, LATER, SOON, NEVER}class Question {Random rand = new Random();Answers ask() {int prob = (int)(100 * rand.nextDouble());if(prob < 15)return Answers.MAYBE;else if(prob < 30)return Answers.NO;else if(prob < 60)return Answers.YES;else if(prob < 75)return Answers.LATER;else if(prob < 98)return Answers.SOON;elsereturn Answers.NEVER;}}class AskMe {static void answer(Answers result) {switch(result) {case NO:System.out.println("NO");break;case YES:System.out.println("YES");break;case MAYBE:System.out.println("MAYBE");break;case LATER:System.out.println("LATER");break;case SOON:System.out.println("SOON");break;case NEVER:System.out.println("NEVER");break;}}public static void main(String args[]) {Question q = new Question();answer(q.ask());answer(q.ask());answer(q.ask());answer(q.ask());answer(q.ask());answer(q.ask());}}

运行结果如下:

NO
MAYBE
MAYBE
YES
SOON
MAYBE



方法二:用接口实现。

/** * 决策生成器  * from《java完全手册》 *///接口实现import java.util.Random;interface SharedConstants {int NO = 0;int YES = 1;int MAYBE = 2;int LATER = 3;int SOON = 4;int NEVER = 5;}class Question implements SharedConstants {Random rand = new Random();int ask() {int prob = (int)(100 * rand.nextDouble());if(prob < 15)return MAYBE;else if(prob < 30)return NO;else if(prob < 60)return YES;else if(prob < 75)return LATER;else if(prob < 98)return SOON;elsereturn NEVER;}}class AskMe implements SharedConstants {static void answer(int result) {switch(result) {case NO:System.out.println("NO");break;case YES:System.out.println("YES");break;case MAYBE:System.out.println("MAYBE");break;case LATER:System.out.println("LATER");break;case SOON:System.out.println("SOON");break;case NEVER:System.out.println("NEVER");break;}}public static void main(String args[]) {Question q = new Question();answer(q.ask());answer(q.ask());answer(q.ask());answer(q.ask());answer(q.ask());answer(q.ask());}}

运行结果如下:

NO
SOON
YES
MAYBE
YES
MAYBE


于2013/04/10

原创粉丝点击