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



我的程序无法完成我需要它做的事情,我已经在这个问题上呆了六个小时。它会提示用户输入他们想扔硬币的次数,程序会统计扔了多少个硬币的正面和反面,并吐出正面和反面的总数以及作为正面滚动的百分比。我的问题是,一旦循环第一次通过,它就结束了。它只是停止,不会提示用户选择另一个号码或按0退出程序并返回主菜单,我该如何解决这个问题?此外,我如何可以选择返回到另一个循环。我试过休息的方法,但对我不起作用。我不知道我真的迷路了。我如何才能让这个循环继续扔硬币,并询问用户他们想扔多少次?同时允许他们简单地按0并退出此循环以返回主菜单?我没有在这里发布代码,但这是一个有不同子选项/游戏的循环。

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"));
}}}

您可以在外循环之前有一个boolean flag变量,并在两个嵌套循环中使用breaks/continues来实现所需的控制流。

样本代码:

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回答帖子,立即跳出循环,跳到特定的标签。

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

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

最新更新