无法获得循环才能正常工作

问题描述:

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语句也被执行。另一件事是,一旦用户得到了正确的问题,或者在三次允许的情况下没有正确地回答问题,就会出现一组新的数字。我还没有能够让它正确执行。我已经尝试过不同的运行良好的东西,但是项目的要求是使用do while循环。无法获得循环才能正常工作

+0

什么时候会'while(guess!= sum)'?看起来你正在增加尝试:'try ++' –

+0

不要忘记为语言添加一个标记,并在这里处理缩进,代码很难按原样读取。 – crashmstr

这样的事情呢?

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

循环将继续下去,直到总和是否正确,或尝试次数耗尽。每循环迭代一次,增量尝试一次。

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

或者,您可以在猜测正确或不再尝试时使用break关键字。另外,你应该重置你在外部for循环中的try变量(以便它在每次游戏开始时重置)。