2015-04-06 76 views
0

这是我的代码..我不认为我正确使用do/while循环...如何让代码再次尝试?

我该如何正确使用do/while?

我应该使用不同的方法吗?

我想知道

public static void main(String[] args) { 
    // TODO code application logic here 
    Scanner input = new Scanner(System.in); 
    System.out.print("enter minimum of Yahtzee dice 2-9:"); 
    int min = input.nextInt(); 
    System.out.print("enter maximum of Yahtzee dice 3-10:"); 
    int max = input.nextInt(); 
    String tryAgain = "y"; 
    do { 
    System.out.println("Dice Rolls\tYahtzee's Percentage Odds\t"); 
    for (int i = min; i <= max; i++) { 
     int count = 0; 
     boolean success = true; 
     for (int j = 0; j <= 5000000; j++) { 
      Random generator = new Random(); 
      YahtzeeDice d = new YahtzeeDice(generator, i); 
      if (d.IsAYahtzee()) { 
       count++; 
      } 
     } 
     System.out.printf("%d  ", i); 
     System.out.printf("%d\t", 5000000); 
     System.out.printf("%d\t ", count); 
     System.out.printf("%f ", (double) count/5000000); 
     double per = count/(double) 5000000; 
     int odds = (int) (1/per); 
     System.out.printf("1 in %d\n", odds); 
    } 
     System.out.print("Run another simulation [y/n]? "); 
     tryAgain = input.nextLine(); 
} while(!tryAgain.equals("n")); 

回答

0

immibis如何在第一评论钉吧,我想。你非常接近正确。试试这个:

public static void main(String[] args) { 
     // TODO code application logic here 
     Scanner input = new Scanner(System.in); 
     Random generator = new Random(); 

     String tryAgain = "y"; 
     do { 
      System.out.print("enter minimum of Yahtzee dice 2-9:"); 
      int min = input.nextInt(); 
      input.nextLine(); 
      System.out.print("enter maximum of Yahtzee dice 3-10:"); 
      int max = input.nextInt(); 
      input.nextLine(); 

      System.out.println("Dice Rolls\tYahtzee's Percentage Odds\t"); 

      for (int i = min; i <= max; i++) { 
       int count = 0; 
       boolean success = true; 
       for (int j = 0; j <= 5000; j++) { 
        YahtzeeDice d = new YahtzeeDice(generator, i); 
        if (d.IsAYahtzee()) { 
         count++; 
        } 
       } 
       System.out.printf("%d  ", i); 
       System.out.printf("%d\t", 5000000); 
       System.out.printf("%d\t ", count); 
       System.out.printf("%f ", (double) count/5000000); 
       double per = count/(double) 5000000; 
       int odds = (int) (1/per); 
       System.out.printf("1 in %d\n", odds); 
      } 

      System.out.print("Run another simulation [y/n]? "); 
      tryAgain = input.nextLine(); 

     } while (!tryAgain.equals("n")); 

} 

ps。在玩耍的时候,我不知道你在做什么,而是移动了你的输入。你应该将它们移回循环之外,如果这就是你的意图。

+0

非常感谢你~~~ !!! –

相关问题