Java中Do While语句中的方法?

Java中Do While语句中的方法?,java,loops,iteration,Java,Loops,Iteration,我知道这对任何真正了解Java的人来说都是非常基本的,但我仍在学习。我正在做一个练习,我必须创建一个方法“startGuessing()”,它使用另一个方法“guess()”,将该方法的输出显示到终端。此外,它还显示了尝试的次数,并在猜测正确的次数时结束 我对尝试的次数很感兴趣,当猜到正确的次数时就结束了——但我一辈子都无法了解如何使用内部方法的输出。我是Java新手,所以我试图真正理解,而不是仅仅把答案放在盘子里。下面是我的代码(这是startGuessing()方法,我无法理解其逻辑: im

我知道这对任何真正了解Java的人来说都是非常基本的,但我仍在学习。我正在做一个练习,我必须创建一个方法“startGuessing()”,它使用另一个方法“guess()”,将该方法的输出显示到终端。此外,它还显示了尝试的次数,并在猜测正确的次数时结束

我对尝试的次数很感兴趣,当猜到正确的次数时就结束了——但我一辈子都无法了解如何使用内部方法的输出。我是Java新手,所以我试图真正理解,而不是仅仅把答案放在盘子里。下面是我的代码(这是startGuessing()方法,我无法理解其逻辑:

import java.util.*;

public class HiLo {

    public static void main(String[] args) {
        startGuessing();
    }


    
    static int random;
    
    public void generateNumber() 
    {
       //The following lines generate and output a random number between 1 and 10
        random = (int)(Math.random()*100)+1;
    }





   //Write the guess() method below 
   public void guess()
   {

       //Create a new scanner object to receive user input
          Scanner sc=new Scanner(System.in);

          System.out.println("Enter your guess ");
        int guess = sc.nextInt();
          if(guess == random)
          {
              System.out.println("Hit!");

          } else if(guess < random)
          {
              System.out.println("Low!");

          } else if(guess > random)
          {
              System.out.println("High!");

          }
          



   }


    public void startGuessing()

    {
        int i = 0;

        do {
            guess();
            i++;
        }

        while(guess != random);
        System.out.println("That took you " + i + " guesses!");
    }



    }
import java.util.*;
公共类HiLo{
公共静态void main(字符串[]args){
开始学习();
}
静态int随机;
公共空生成器枚举器()
{
//以下几行生成并输出一个介于1和10之间的随机数
random=(int)(Math.random()*100)+1;
}
//在下面编写guess()方法
公众猜测
{
//创建新的扫描仪对象以接收用户输入
扫描仪sc=新的扫描仪(System.in);
System.out.println(“输入您的猜测”);
int guess=sc.nextInt();
如果(猜测==随机)
{
System.out.println(“命中!”);
}else if(猜测<随机)
{
System.out.println(“Low!”);
}else if(猜测>随机)
{
System.out.println(“高!”);
}
}
公共无效开始使用()
{
int i=0;
做{
猜();
i++;
}
而(猜测!=随机);
System.out.println(“这让你”+i+“猜猜!”);
}
}

我知道这对任何了解Java的人来说都是非常基本的,但我才刚刚开始。任何帮助都将不胜感激。

这就是我最后所做的。从guess()方法中提取代码,使用布尔标志对其进行更改,并在do while循环中使用:

 public static void startGuessing2() {
        boolean correct = false;
        int i = 1;
        do {


            //Create a new scanner object to receive user input
            Scanner sc = new Scanner(System.in);

            System.out.println("Enter your guess ");
            int guess = sc.nextInt();

            if (guess == random) {
                System.out.println("Hit!");
                correct = true;

            } else if (guess < random) {
                System.out.println("Low!");
                correct = false;

            } else if (guess > random) {
                System.out.println("High!");
                correct = false;

            }
            i++;
        } while (correct == false);
        System.out.println("That took you " + i + " guesses!");


    }
publicstaticvoidstartguessing2(){
布尔正确=错误;
int i=1;
做{
//创建新的扫描仪对象以接收用户输入
扫描仪sc=新的扫描仪(System.in);
System.out.println(“输入您的猜测”);
int guess=sc.nextInt();
如果(猜测==随机){
System.out.println(“命中!”);
正确=正确;
}else if(猜测<随机){
System.out.println(“Low!”);
正确=错误;
}else if(猜测>随机){
System.out.println(“高!”);
正确=错误;
}
i++;
}while(correct==false);
System.out.println(“这让你”+i+“猜猜!”);
}

这就是我要学习编写返回字符串的方法的地方:

//Write the guess() method below
    public static String guess() {

        //Create a new scanner object to receive user input
        Scanner sc = new Scanner(System.in);
        System.out.println("Enter your guess ");
        int guessVal = sc.nextInt();

        String result;
        if (guessVal == random) {
            result = "Hit!";
            System.out.println(result);
            return result;

        } else if (guessVal < random) {
            result = "Low!";
            System.out.println(result);
            return result;

        } else if (guessVal > random) {
            result = "High!";
            System.out.println(result);
            return result;

        } else {
            return "error";

        }
    }

    public static void startGuessing() {

        int i = 0;
        do {
            guess();
            i++;

            } while (result != "Hit");

        System.out.println("That took you " + i + " guesses!");


    }
//在下面编写guess()方法
公共静态字符串猜测(){
//创建新的扫描仪对象以接收用户输入
扫描仪sc=新的扫描仪(System.in);
System.out.println(“输入您的猜测”);
int guessVal=sc.nextInt();
字符串结果;
如果(猜测值==随机){
结果=“命中!”;
系统输出打印项次(结果);
返回结果;
}else if(猜测值<随机值){
结果=“低!”;
系统输出打印项次(结果);
返回结果;
}else if(猜测值>随机值){
结果=“高!”;
系统输出打印项次(结果);
返回结果;
}否则{
返回“错误”;
}
}
公共静态无效开始使用(){
int i=0;
做{
猜();
i++;
}而(结果!=“命中”);
System.out.println(“这让你”+i+“猜猜!”);
}

当测试抛出“无法解析符号”错误时,试图将结果传递给测试。我将继续搜索…

提示:
public String guess()
谢谢,不过如果guess是一个字符串,我就无法将它与random进行比较,random是一个int?我仍在玩弄各种可能性。另外,我也不知道为什么有人把我的问题记下来了——但我指的是方法声明,而不是变量Hey all,所以最后我从inn中取出了代码er方法guess(),对其进行修改并在do-while循环中使用它,它似乎起到了作用。拥有一个方法
guess()
,这不是要求的一部分吗?为什么不学习如何编写一个返回字符串的方法呢?