Java 后端类中的For循环不工作?
后端类-CompareGuess方法中的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
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..谢谢..非常感谢,将进行必要的更改。不客气。如果它按您希望的方式工作,请将我的答案标记为已接受。这是感谢我的最佳方式。不客气;)如果有助于解决您的问题,请考虑将其标记为已接受的答案。谢谢!