【发布时间】:2014-06-29 11:18:58
【问题描述】:
此问题是此链接Java SE do while loop issues的后续问题
这是一个询问房间名称的应用程序,然后第二次提示询问其尺寸以执行一些计算。一切都完成后,应用程序应该能够返回到第一个提示询问房间名称等的提示。
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;
}
}
还有我运行应用程序的主要方法。
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();
}
}
现在应用程序只返回第二个提示而不是第一个提示,所以你们能帮我解决这个问题吗?再次提前感谢各位!
【问题讨论】:
-
需要在while循环中包含第一个提示不是很明显吗?
-
房间名称的提示应该在循环内部,而不是外部,因为您希望它重复。
-
@JBNizet 我已经剪切了提示并将其粘贴到代码 Room r 的正上方;但是虽然编译没问题但是没有运行。
-
编辑您的问题并在底部发布您的新代码。定义“它不运行”。发生什么了?您意识到您必须继续阅读用户在要求他输入某些内容之后输入的内容,对吧?
-
编辑您的问题,在原始问题末尾显示您最近的尝试作为附加代码,显示您遇到的错误。也可以使用调试器或使用 println 语句来帮助您调试。
标签: java loops while-loop do-while