【问题标题】:unable to get loop to work properly无法让循环正常工作
【发布时间】:2013-10-30 05:08:05
【问题描述】:
import java.util.Random;
import java.util.Scanner;

public class addinggamedowhile
{
    public static void main (String[]args)
    {
        Random r = new Random ();
        Scanner s = new Scanner(System.in);
        int x = r.nextInt(20)+1;
        int y = r.nextInt(20)+1;

        int sum = x + y;
        int guess;
        System.out.println("===========");
        System.out.println("Adding Game");
        System.out.println("===========");
        System.out.println();

    int tries = 0;
    for (int games = 0; games < 10; games++)
    {
        do
        {
        System.out.print (x + " + " + y + " = ");
        guess = s.nextInt();

        if (guess != sum && tries < 2)
        {
        System.out.println("Not quite. Try again!");
        System.out.println();
        tries++;
        }
        else
        System.out.println("Not quite. The answer is " +sum+ ".");
        System.out.println();
       }
    while (guess != sum);
    System.out.println("Congratulations. You got it!");
    System.out.println();
}

}}

我在处理这个循环时遇到了问题。我无法让循​​环在我想要的时候终止。它应该只持续十次“猜测”。另外,当用户答对问题时,我的else语句也会执行。另一件事是,一旦用户答对了问题,或者在允许的 3 次内没有答对问题,就会出现一组新的数字。我也无法让它正确执行。我尝试了不同的效果很好的方法,但该项目的要求是使用 do while 循环。

【问题讨论】:

  • 什么时候while (guess != sum)?看起来你正在增加尝试:tries++
  • 别忘了为语言打上标签,并在此处进行缩进,代码很难按原样阅读。

标签: java loops if-statement while-loop do-while


【解决方案1】:

这样的事情怎么样?

do {
    //your code here
} while (guess != sum && tries <= 10);

循环将继续进行,直到总和正确或尝试次数用尽。每次循环迭代时递增尝试。

然后,在完成后(即在循环之外),检查猜测是否是正确的总和,或者尝试是否已用尽,并相应地打印出响应。

【讨论】:

    【解决方案2】:

    当猜测正确或不再尝试时,您也可以使用break 关键字。此外,您可能应该在外部 for 循环内重置您的尝试变量(以便在每场比赛开始时重置)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-01
      • 1970-01-01
      • 2014-12-02
      • 2013-08-09
      • 2013-10-19
      相关资源
      最近更新 更多