方法一:使用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