#java
#java
Вопрос:
Я не знаю, как вставить цикл, который запрашивает «да или нет» в этом коде. Предположительно, я должен задать вопрос в конце этого кодирования для класса cylinder только для «хотите ли вы повторить это вычисление», но я до сих пор не знаю, как его вставить.
import java.util.*;
public class cylinder extends circle {
public cylinder(double r, double a)
{
super(r, a);
}
private double height;
private double radius;
private double volume;
public double getHeight()
{
return height;
}
public void setHeight()
{
Scanner r = new Scanner(System.in);
System.out.println("Height : ");
double height = r.nextDouble();
}
public double getVolume()
{
volume = (pi * radius * radius) * height;
return volume;
}
public double getPerimeter()
{
perimeter = 2 * pi * getRadius();
return perimeter;
}
public void main(String args[])
{
System.out.println("------------ This is a Circle ------------");
System.out.format("Radius is %.2f", radius);
System.out.format("Area is %.2f ", area);
System.out.println("---------------------------");
System.out.println("----------- This is a Cylinder ------------");
System.out.format("Radius is %.2f" getRadius());
System.out.format("Volume is %.2f" getVolume());
System.out.format("Perimeter is %.2f" perimeter);
System.out.println("--------------------------------");
}
}
Комментарии:
1. Привет, добро пожаловать в StackOverflow. В вашем основном методе вот несколько шагов, которые вам нужно выяснить. В вашем основном методе оберните свой код в структуру цикла (найдите его), добавьте свой вопрос в конце цикла, запросите ввод, цикл должен проверить ввод
Ответ №1:
вы не вызываете ни один из ваших пользовательских методов в основном методе. Сначала вы должны это сделать, а затем, в зависимости от вашего результата, вы можете сказать, чего именно вы хотите достичь.
Комментарии:
1. вы имеете в виду, что я должен добавить что-то вроде cylinder c = new cylinder(); вот так?
2. getRadius() используется в основном методе, где определен этот метод?
Ответ №2:
public void main(String args[]) {
String reply = null;
do {
System.out.println("------------ This is a Circle ------------");
System.out.format("Radius is %.2f", radius);
System.out.format("Area is %.2f ", area);
System.out.println("---------------------------");
System.out.println("----------- This is a Cylinder ------------");
System.out.format("Radius is %.2f" getRadius());
System.out.format("Volume is %.2f" getVolume());
System.out.format("Perimeter is %.2f" perimeter);
System.out.println("--------------------------------");
Scanner input = new Scanner(System.in);
System.out.println("would you like to repeat this calculation ?(Y/N)");
reply = input.next();
} while(reply.equalsIgnoreCase("Y"));
}
Комментарии:
1. «ответ» в while отображается как ошибка, нужно ли мне сначала объявить его?
2. Условие in
while
не видит вашуreply
переменную, которая находится внутри цикла3. @nkrivenko я перемещаю скобку рядом со «строкой», но в «input.next();» появляется ошибка, потому что ввод находится за пределами скобки? если я переместил скобку назад, в нем будет указано, что «ответ» является ошибкой.
4. Попробуйте код сейчас, он должен работать (не забудьте поставить точку с запятой после
new Scanner(System.in);
)