как добавить цикл, который запрашивает «да» или «нет» после выполнения вычисления?

#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); )