@vega2475

Почему функция ввода вызывается несколько раз?

(выполнять нужно обязательно с функциями, сделать все в main нельзя)

При выполнении кода пользователю приходится вводить данные по 2 раза(2 раза сторону квадрата и радиус круга тоже 2 раза) Я не могу понять почему так происходит. пытался посмотреть через отладчик, но при шаге с заходом он не показывает где и какая выполняется строка в данный момент.

import java.util.Scanner;
public class Main {




    public static double inputTetragonside (){
        System.out.print("Pls write side of tetragon: ");
        Scanner scannerTS = new Scanner(System.in);
        return scannerTS.nextDouble();
    }

    public static double inputRadius () {
        System.out.println("Pls write value radius: ");
        Scanner scannerRC = new Scanner(System.in);
        return scannerRC.nextDouble();
    }
    public static double TetragonSquare (){
        double inputSideTetragon = inputTetragonside ();
        System.out.println("Tetragon Square = " + Math.pow(inputSideTetragon, 2));
        return Math.pow(inputSideTetragon, 2);
    }



    public static double CircleSquare (){
        double inputRadius = inputRadius();
        System.out.println("CircleSquare = " + Math.PI * Math.pow(inputRadius, 2));
        return Math.PI * Math.pow(inputRadius, 2);
    }
    public static double CircleSquare4 (){

        double FourCirclesSqure = CircleSquare() * 4;
        System.out.println("Square of 4 Circles = " + FourCirclesSqure);
        return FourCirclesSqure;
    }

    public static void result (){


        if(TetragonSquare() / CircleSquare4() >= 1)
            System.out.println("4 круга не достаточно");
        else
            System.out.println("4 круга закрыли квадрат");{
            double circlescountDouble = TetragonSquare()  / CircleSquare();
            int circlecount = (int)Math.ceil(circlescountDouble);
            if(circlecount == 0  && CircleSquare() > TetragonSquare() ) {
                circlecount = 1;
                System.out.println("Для того чтобы закрыть квадрат нужно " + circlecount);
            }


        }
    }


    public static void main(String[] args) {





        result(); //ответ к задаче


    }

}
  • Вопрос задан
  • 82 просмотра
Решения вопроса 1
xez
@xez Куратор тега Java
TL Junior Roo
Потому, что в условии
if(TetragonSquare() / CircleSquare4() >= 1) предполагается ввод данных.
И в
double circlescountDouble = TetragonSquare()  / CircleSquare();
тоже нужно вводить данные.

Лучше сначала ввести данные, а потом уже их анализировать, передавая в методы.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы