Java do while循环回到应用程序的开头 [英] Java do while loop back to the beginning of application

查看:168
本文介绍了Java do while循环回到应用程序的开头的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

此问题是该链接的后续内容 Java SE做while循环问题

This question is a follow-up from this link Java SE do while loop issues

这是一个应用程序,要求输入房间名称,然后第二个提示要求输入房间尺寸以执行一些计算。完成所有操作后,应用程序应该可以返回到第一个提示,询问房间名称等。

This is an application asking for a room's name then second prompt to ask for its dimensions to perform some calculations. right after everything has been done, the application should be able to return back to the first prompt asking for the name of room etc.

class Room
{
private String name;
private double length;
private double width;
private double height;

public Room(String r, double l, double w, double h)
{
    name = r;
    length = l;
    width = w;
    height = h;
}


public String getName()
{
    return name;
}

public double getLength()
{
    return length;
}

public double getWidth()
{
    return width;
}

public double getHeight()
{
    return height;
}

public double getArea()
{
    double area = length*width;
    return area;
}

public double getVolume()
{
    double volume = length*width*height;
    return volume;  
}

public void setName(String s)
{
    name = s;
}
}

还有我运行应用程序的主要方法。

And my main method running the application.

import java.util.Scanner;

class TestRoom
{
public static void main(String [] args)
{
    Scanner userInput = new Scanner(System.in);
    System.out.println("Please enter the name of room");

    String roomName = userInput.next();
    while(!(roomName.equals("quit")))
    {           
        Room r;
        do
        {
            Scanner dimensionsInput = new Scanner(System.in);
            System.out.print("Please enter the dimensions of the room, length, width and height accordingly");

            double roomLength = dimensionsInput.nextDouble();
            double roomWidth = dimensionsInput.nextDouble();
            double roomHeight = dimensionsInput.nextDouble();

            r = new Room(roomName, roomLength, roomWidth, roomHeight);
        }
        while (r.getLength() == 0 || r.getWidth() == 0 || r.getHeight() == 0);


        System.out.println("The name of room: " + r.getName() + " Dimensions: L= " + r.getLength() + 
                                " X " + "W= " + r.getWidth() + " X " + "H= " + r.getHeight());
        System.out.println("Area of room= " + r.getArea());
        System.out.println("Volume of room= " + r.getVolume());

    }
    userInput.close();
}
}

现在,应用程序仅返回第二个提示符第一个,你们可以帮我吗?再次感谢您!

Right now the application only returns to the second prompt instead of the first one so could you guys help me on this? Thanks in advance again guys!

推荐答案

您不需要声明两个扫描器。显然,您也必须将第一个提示也包含在外部while循环中。

You don't need to declare two scanners. You obviously had to include the first prompt into the outer while loop as well.

固定代码:

import java.util.Scanner;

class TestRoom
{
    public static void main(String[] args)
    {
        Scanner userInput = new Scanner(System.in);
        String roomName = "";

        while (!(roomName.equals("quit")))
        {
            System.out.println("Please enter the name of room");

            roomName = userInput.next();

            Room r;

            do
            {
                System.out
                        .print("Please enter the dimensions of the room, length, width and height accordingly");

                double roomLength = userInput.nextDouble();
                double roomWidth = userInput.nextDouble();
                double roomHeight = userInput.nextDouble();

                r = new Room(roomName, roomLength, roomWidth, roomHeight);
            } while (r.getLength() == 0 || r.getWidth() == 0
                    || r.getHeight() == 0);

            System.out.println("The name of room: " + r.getName()
                    + " Dimensions: L= " + r.getLength() + " X " + "W= "
                    + r.getWidth() + " X " + "H= " + r.getHeight());
            System.out.println("Area of room= " + r.getArea());
            System.out.println("Volume of room= " + r.getVolume());
        }

        userInput.close();
    }
}

这篇关于Java do while循环回到应用程序的开头的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆