我要求用户输入一个半径数,但是 程序没有读取用户输入我的意思是它会让 我把数字但不接受并计算? 我不知道我犯了什么错误?
我把半径串起来然后放了 半径= input.nextLine(); 我希望用户输入他/她的地方 但是当我运行它时,程序却没有 计算用户输入。 请帮助谢谢。
import javax.swing.JOptionPane;
import java.util.Scanner;
import java.util.*;
import java.text.DecimalFormat;
import java.text.NumberFormat;
public class TComparable
{
private double radius;
public static void main(String[] args)
{
Scanner input= new Scanner(System.in);
int option;
String radius;
option = JOptionPane.YES_NO_OPTION;
while(option == JOptionPane.YES_OPTION)
{
// Declare and initialize two geometric objects
Circle1 circle1 = new Circle1(5);
Circle1 circle2 = new Circle1(4);
System.out.println("What is the radius of the two circle:");
radius=input.nextLine();
radius=input.nextLine();
Circle1 circle = (Circle1)GeometricObject1.max(circle1, circle2);
System.out.println("The max circle's radius is " + circle.getRadius());
System.out.println(circle);
System.out.println("The two objects have the same area? " +
equalArea(circle1,circle2));
displayGeometricObject(circle1);
displayGeometricObject(circle2);
option = JOptionPane.showConfirmDialog( null, "Would you like to continue?");
}
}
public static boolean equalArea(GeometricObject1 object1,
GeometricObject1 object2)
{
return object1.findArea() == object2.findArea();
}
public static void displayGeometricObject(GeometricObject1 object)
{
System.out.println();
System.out.println("The area is " + object.findArea());
System.out.println("The perimeter is " + object.findPerimeter());
}
}
答案 0 :(得分:0)
我直接看到一个问题。如果你要求两个半径,你可能想要存储它们而不是用第二个覆盖第一个:
System.out.println("What is the radius of the two circle:");
radius=input.nextLine();
radius=input.nextLine();
而且,虽然您输入半径,但我看不到基于这些半径影响圆圈的代码。我希望看到类似的东西:
circle1.setRadius(radius1); // after converting string to numeric of course.
如果没有它,您的圈子将保持与初始化时相同的半径,大概是4
和5
。
就更具体的代码而言,假设Circle1
类 具有setRadius(double)
成员函数,您可以使用以下内容:
System.out.println("What is the radius of the two circle:");
radius = input.nextDouble(); // may want to catch exception
circle1.setRadius(radius);
radius = input.nextDouble(); // ditto
circle2.setRadius(radius);
答案 1 :(得分:0)
这可能是由于input.nextLine()被调用两次,跳过第一个输入。相反,将input.nextLine()分配给另一个变量,而不是再次设置radius。