Java 猜游戏循环
这是我做的一个猜谜游戏的代码。我的计数器没有超过1。我从一个单独的控制器类传递参数选择和generatedNumber。do while循环是否应该在控制器类中Java 猜游戏循环,java,loops,counter,Java,Loops,Counter,这是我做的一个猜谜游戏的代码。我的计数器没有超过1。我从一个单独的控制器类传递参数选择和generatedNumber。do while循环是否应该在控制器类中 public String startGuessingGame(int choice, int generatedNumber) { int count = 0; final int attempts = 4; String result = null;
public String startGuessingGame(int choice, int generatedNumber) {
int count = 0;
final int attempts = 4;
String result = null;
do {
count++;
if (choice == generatedNumber) {
result = "Attempt " + count + " "
+ "- You have guessed the correct number!";
}
else if (choice > 50 || choice < 0) {
result = "Out of range. "
+ "\nPlease choose a number between 1 and 50.";
}
else if (choice > generatedNumber) {
result = "Attempt " + count + " "
+ " - You have guessed too high!";
}
else if (choice < generatedNumber) {
result = "Attempt " + count + " "
+ "- You have guessed too low!";
}
if (count == attempts) {
result = "You are out of guesses! The number was " + generatedNumber;
}
}
while(count < attempts);
return result;
}
}
publicstringstartguessinggame(int-choice,int-generatedNumber){
整数计数=0;
最终int尝试次数=4次;
字符串结果=null;
做{
计数++;
如果(选项==generatedNumber){
结果=“尝试”+计数+“”
+“-您猜对了数字!”;
}
否则如果(选项>50 | |选项<0){
结果=“超出范围。”
+“\n请选择一个介于1和50之间的数字。”;
}
else if(选项>生成编号){
结果=“尝试”+计数+“”
+“-你猜得太高了!”;
}
else if(选项
这里没有循环。
您正在寻找类似于
while(count
的东西,您需要将count
设置为控制器类的类变量(成员),并在该类中设置do/while循环,以便startGuessingGame
仅处理用户选择的验证。类似这样的东西,但代码还远远没有完成
public class SomeControllerClass() {
final int attempts = 4;
int count = 0;
public void someMethod() {
int choice = 0;
do {
choice = getChoice();
count++;
String text = otherClass.startGuessingGame(choice, generatedNumber);
while (count < attempts);
}
公共类SomeControllerClass(){
最终int尝试次数=4次;
整数计数=0;
公共方法(){
int-choice=0;
做{
choice=getChoice();
计数++;
String text=otherClass.startGuessingGame(选项,generatedNumber);
而(计数<尝试次数);
}
该方法只进行验证
public String startGuessingGame(int choice, int generatedNumber) {
String result = null;
if (choice == generatedNumber) {
result = "Attempt " + count + " "
+ "- You have guessed the correct number!";
} else if (choice > 50 || choice < 0) {
//and so on
return result;
}
publicstringstartguessinggame(int-choice,int-generatedNumber){
字符串结果=null;
如果(选项==generatedNumber){
结果=“尝试”+计数+“”
+“-您猜对了数字!”;
}否则如果(选项>50 | |选项<0){
//等等
返回结果;
}
试试这个:
在条件下,在之前的末尾递增计数器:
do{
...
if (count == attempts) {
result = "You are out of guesses! The number was " + generatedNumber;
}
count++;
}while(count < attempts);
return result;
...
do{
...
如果(计数==尝试次数){
result=“你猜不到!数字是”+generatedNumber;
}
计数++;
}而(计数<尝试次数);
返回结果;
...
这里实际上没有循环。我在任何地方都看不到for、while或do-while语句。没有循环,就不会有重复。你必须有一个循环。你应该确保检查循环中的正确条件。将你的代码与循环一起发布,这样做更有意义,因为你肯定需要一个loopAp逻辑上,编辑的代码比我的差,我应该早点看到这一点,你需要让你在方法外循环startGuessingGame
,或者让用户在方法内做出新的选择。现在将有一个选择,该方法将计数为4(对于相同的选择)并退出。这会导致代码直接跳到“你猜不到!"我需要选择作为一个参数,因为它是从一个控制器class@GearoidSheehan好的,这里的一个问题是,您的方法的行为就像它是控制器类的一部分,所以我想这不是一个容易解决的问题。@GearoidSheehan我已经用一个新的方法更新了我的答案solution@GearoidSheehan有什么反馈吗?我设法让计数正常了使用您的解决方案时,无论输入什么值,每次输出都是“您猜得太低了!”。