決策產生器的java實現

來源:互聯網
上載者:User

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.