嵌套循环,如何结束循环以及如何让循环继续循环? java,eclipse

时间:2014-02-18 06:31:08

标签: loops random while-loop java.util.scanner nested-loops

我的程序不会做我需要它做的事情,而且我已经被困在这个问题上六个小时了。 它提示用户输入他们想扔硬币的次数,该程序计算抛出的头部和尾部的数量,并吐出总头部和尾部以及作为头部滚动的百分比。我的问题是,循环一旦它第一次通过就会结束。它只是停止并且不会提示用户选择另一个号码或按0退出程序并返回主菜单,我该如何解决这个问题呢?另外,我如何选择返回另一个循环。我已经尝试过break方法,它对我不起作用。我不知道我真的输了。我怎么能这样做,所以这个循环继续投掷硬币仍然问用户他们想要折腾多少次?同时允许他们只需按0并退出此循环返回主菜单?我没有在这里发布该代码,但它是一个带有不同子选项/游戏的while循环。

    if (anotherScanner.hasNext("t|T")){

    c = anotherScanner.next();
    usersSelection = true;
    System.out.println("");
    System.out.println("COIN TOSS SIMULATOR");
    System.out.println("");
    System.out.println("Enter 0 to quit. How many tosses?");


    Random rand = new Random();
    float headsCount = 0;
    float tailsCount = 0;
    Scanner scanMan = new Scanner(System.in);
    int numero = scanMan.nextInt();
    boolean headsOrTails;

    for (int j=0;j < numero;j++)
    {
    if (numero == 0) {break;}
    headsOrTails = rand.nextBoolean();

    if (headsOrTails == true)
    {
    headsCount++;
    }
    else 
    {
    tailsCount++;               

    System.out.println(headsCount + " heads and " + tailsCount + " tails means " + (headsCount/(headsCount+tailsCount)*100 + "% were heads"));
    }}}

1 个答案:

答案 0 :(得分:0)

您可以在外部循环之前使用boolean flag变量,并在2个嵌套循环中使用break s / continue来实现所需的控制流。

示例代码:

boolean flag = false;
for (int i=0; i<N; i++)
{
   for (int j=0; j<N; j++)
   {
      if (j > i)
      {
         flag = true;
         break;
      }
   }
   if (flag)
   {
      break;
   }
}

...或者如果您需要,请使用continue。您可能还想根据需要更改内部循环终止条件,即。 if (j > i)

或者,如果您是goto的粉丝,您还可以查看相关的SO帖子here,以便立即退出循环并跳转到特定标签。

示例代码(来自该SO页面):

loops:
for (int i = 0; i < MAX_I; i++) {
    for (int j = 0; j < MAX_J; j++) {
        // do stuff
        break loops;
    }
}
相关问题