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();
}
}}
我遇到了这个循环的问题。当我想要它时,我无法让循环终止。它应该只持续10个“猜测”。此外,当用户得到正确的问题时,我的else语句也会被执行。另一件事是,一旦用户得到正确的问题,或者在允许的三次问题中没有得到正确的问题,就应该出现一组新的数字。我也无法让它正确执行。我尝试了不同的方法,但项目的要求是使用do while循环。
答案 0 :(得分:2)
这样的事情怎么样?
do {
//your code here
} while (guess != sum && tries <= 10);
循环将继续进行,直到总和正确或尝试次数耗尽。每次循环迭代时,增量都会尝试一次。
然后,在完成之后(即在循环之外),检查猜测是否是正确的总和,或者尝试是否已用完并相应地打印出响应。
答案 1 :(得分:0)
或者,您可以在猜测正确或不再尝试时使用break
关键字。此外,您可能应该在外部for循环中重置您的尝试变量(以便在每个游戏的开始时重置它)。