Java 后端类中的For循环不工作?

Java 后端类中的For循环不工作?,java,for-loop,Java,For Loop,后端类-CompareGuess方法中的for循环不起作用。 public class frontEnd { public static void main (String args[]) { int GetGuess = 0; backEnd e1 = new backEnd(); e1.InitializeArray(); while(e1.chanceCounter<3) { System.out.println

后端类-CompareGuess方法中的for循环不起作用。

public class frontEnd
{  
  public static void main (String args[])
  {
    int GetGuess = 0;
    backEnd e1 = new backEnd();  
    e1.InitializeArray(); 
    while(e1.chanceCounter<3)
    {
      System.out.println("Enter a number");
      GetGuess = (int)(Math.random()*6);
      System.out.println(GetGuess);
      e1.UserGuess(GetGuess);
      e1.CompareGuess();
      if(e1.suc!=1)
      {
        System.out.println("It is a miss");      
      }
    }

    System.out.println("Sorry, no chances left");           

  }  
}    


class backEnd
{
  int Guess;
  int HitCounter=0;
  int[] abc = new int[7] ; 
  int chanceCounter=0;
  int suc = 0;
  int x =0;
  public void InitializeArray()
  {
    abc[1]= 3;
    abc[2] = 5;
    abc[4] = 1;
  } 

  public void UserGuess(int guess) 
  {
    Guess = guess;
  }

  public void CompareGuess() 
  {
    for(x=0; x<=6; x++ )
    {
      if (abc[x] == Guess) 
      {
        System.out.println("It is a hit");
        chanceCounter = chanceCounter + 1;
        suc = 1;
      }
      break;
    }
  }
}
公共类前端
{  
公共静态void main(字符串参数[])
{
int GetGuess=0;
后端e1=新后端();
e1.初始化array();

而(e1.chanceCounter问题似乎就在这里:

for(x=0; x<=6; x++ )
{
  if (abc[x] == Guess) 
  {
     System.out.println("It is a hit");
     chanceCounter = chanceCounter + 1;
     suc = 1;
  }

  break; //Here
 }

for(x=0;x因为你的游戏都是关于猜测的。我猜了一下它应该做什么,然后我重写了你的代码,因为我不忍心让它保持原样。我尽可能地让它与你的类似:

public class FrontEnd
{  
  public static void main (String args[])
  {
    int getGuess = 0;
    BackEnd e1 = new BackEnd();  
    e1.initializeArray(); 
    int totalChances = 3;

    while(e1.chanceCounter < totalChances)
    {
      System.out.println("Enter a number");
      getGuess = (int)(Math.random()*6);
      System.out.println(getGuess);
      e1.userGuess(getGuess);
      e1.compareGuess();
      if(!e1.suc)
      {
        System.out.println("It is a miss");      
      }
      e1.suc = false;
      e1.chanceCounter++;
    }

    System.out.println("Sorry, no chances left");
    System.out.println("you scored " + e1.hitCounter + " out of " + totalChances);          

  }  
}    


class BackEnd
{
  int guess;
  int hitCounter = 0;
  int[] abc = new int[7] ; 
  int chanceCounter = 0;
  boolean suc = false;

  public void initializeArray()
  {
    abc[1] = 3;
    abc[2] = 5;
    abc[4] = 1;
  } 

  public void userGuess(int guess) 
  {
    this.guess = guess;
  }

  public void compareGuess() 
  {
    for( int x = 0; x <= 6; x++ )
    {
      if (abc[x] == guess) 
      {
        System.out.println("It is a hit");
        hitCounter++;
        suc = true;
        break;
      }
    }
  }
}
公共类前端
{  
公共静态void main(字符串参数[])
{
int getGuess=0;
后端e1=新后端();
e1.初始化array();
整数=3;
while(e1.chanceCounter对于(int x=0;x)你说它不工作是什么意思?它应该做什么?它在做什么?“不工作”没有提供足够的信息。发生了什么,你期望发生什么?到目前为止你执行了哪些诊断步骤?(顺便说一句,我强烈建议您花点时间遵循正常的Java命名约定,并对示例代码进行格式化…)我在
if
语句外看到一个
break
。将它移到
否则,您的
for
循环只执行一次。@JonSkeet Java新手,将记住您提出的所有要点…Johnny Mopp..谢谢..非常感谢,将进行必要的更改。不客气。如果它按您希望的方式工作,请将我的答案标记为已接受。这是感谢我的最佳方式。不客气;)如果有助于解决您的问题,请考虑将其标记为已接受的答案。谢谢!