Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 猜游戏循环_Java_Loops_Counter - Fatal编程技术网

Java 猜游戏循环

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;

这是我做的一个猜谜游戏的代码。我的计数器没有超过1。我从一个单独的控制器类传递参数选择和generatedNumber。do while循环是否应该在控制器类中

            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有什么反馈吗?我设法让计数正常了使用您的解决方案时,无论输入什么值,每次输出都是“您猜得太低了!”。