首页 > 解决方案 > Java中Do While语句中的方法?

问题描述

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

我找到了尝试的次数,并在猜到正确的数字时结束 - 但我一生都无法弄清楚如何使用内部方法的输出。我是 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!");
    }



    }

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

标签: javaloopsiteration

解决方案


这就是我最后所做的。从 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!");


    }

推荐阅读