java - 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 的人来说都是非常基础的,但我才刚刚开始。任何帮助将非常感激。
解决方案
这就是我最后所做的。从 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!");
}
推荐阅读
- c - 数组运算符“-”(连字符或破折号)在 C 中的含义和作用是什么?
- python - Pandas - 比较两个日期时间列失败(同时检查两个列是否为空)
- java - 如何在spring-jpa中使用JPQL获取字节[]
- abap - SE16n 表编辑在 DEV 中有效,但在 QA 系统中无效
- javascript - 检查 `DragDropContext(SortableTreeWithoutDndContext)` 的渲染方法
- python - 构造函数中的 PyQt 实例变量
- php - POST "admin-ajax.php" 400 in WordPress Multisite User Frontend Pages
- python - 来自 Python websocket 的 Django 通道上的数据渲染
- amazon-web-services - 如何使用单个 cloudformation 模板创建多个 Elasticbeanstalk 环境
- javascript - 关于 JavaScript String.prototype.substring 的问题