我目前正在完成一项任务,而且大部分时间我都有一份工作计划。我遇到的问题是为这个程序创建一个条件,因为不幸的是,我需要使用float数据类型。赋值需要我有一个接口和多个类设置为三种不同的形状。其中之一,是圈子。对于圆的输入,它需要半径和角度(仅适用于扇区),它计算整个圆的周长和面积以及扇区的周长和面积。我需要圆扇区的角度大于0且小于360度。半径也必须大于0。
这是我到目前为止进行错误检查的内容:
Scanner userInput = new Scanner(System.in);
System.out.print("\nPlease input the angle of a circle sector: ");
while (!userInput.hasNextFloat())
{
System.out.print("Error. Incorrect input. Please enter a number: ");
userInput.next();
}
float circleAngle = userInput.nextFloat();
while (circleAngle > 0 && circleAngle < 360)
{
System.out.print("You have an invalid entry.");
System.out.print("Please input an angle greater than 0 and less than 360:");
circleAngle = userInput.nextFloat();
}
System.out.print("\nPlease input the radius of the circle Sector: ");
while (!userInput.hasNextFloat())
{
System.out.print("Error. Incorrect input. Please enter a number: ");
userInput.next();
}
float circleRadius = userInput.nextFloat();
Circle myCircle = new Circle(circleAngle, circleRadius);
myCircle.setPerimeter();
myCircle.setArea();
myCircle.setSectorArea();
myCircle.setSectorPerimeter();
System.out.println("Whole Circle perimeter: "+myCircle.getPerimeter());
System.out.println("Whole Circle Area: "+myCircle.getArea());
System.out.println("Circle Sector perimeter: "+myCircle.getSectorPerimeter());
System.out.println("Circle Sector Area: "+myCircle.getSectorArea());
正如您所看到的,我在限制浮动输入的范围方面没有太多运气。任何帮助将不胜感激。
答案 0 :(得分:1)
经过一番研究。我发现我可以放置一个while语句,强制上一个userInput上的条件,例如上面代码中的circleAngle。之后,我想出了我的问题的解决方案:
while (circleAngle <= 0 || circleAngle >= 360)
{
System.out.print("You have an invalid entry.");
System.out.print("Please input an angle greater than 0 and less than 360:");
circleAngle = userInput.nextFloat();
}
这允许我循环输入,直到给出有效值。我计划在代码的其余部分添加更多内容。
感谢所有帮助过的人。