Выводит на экран по 2 раза System.out.println(''')

222
27 сентября 2017, 08:58

Такая ситуация - внутри метода вызываю System.out.println(""); на экран выводит 2-3 раза одно и тоже. До вызова этого метода все нормально, и после тоже.

С чем можно было напутать так, что вывод на экран стал множественный? Вывод на экран внутри метода идет первой строкой. Просто тестовая фраза типа "привет" и далее идут вычисления.

Так вот этот привет пишется 2 раза. И все последующие выводы на экран внутри метода идут по 2-3 раза.

Я до этого метода работал с добавлением объектов в список и их удалением путем присваивания null;

Вызов метода calculatesMainFunctionA

NrezultTask2TypeIntervalSet.calculatesMainFunctionA(rezultTask1TypeInterval,0, numberX);

Метод calculatesMainFunctionA():

     public void calculatesMainFunctionA(Interval variableInterval, int 
     positionInIntersectionSet, double ourInputX){
        System.out.println("Привет");
        int i = this.intervalSet.size();   

        boolean oneXorTwoX = true;
        if (ourInputX < this.intervalSet.get(positionInIntersectionSet).getFrom()){
            variableInterval.putFrom(this.intervalSet.get(positionInIntersectionSet).getFrom());
            oneXorTwoX=true;
        }
        if (ourInputX >=this.intervalSet.get(positionInIntersectionSet).getFrom()){//x>=x1 
            if (ourInputX<=this.intervalSet.get(positionInIntersectionSet).getTo()){//x<=x2
                variableInterval.putFrom(ourInputX);
                oneXorTwoX=true;
            }
            else{
                if (positionInIntersectionSet+1==i) {
                    variableInterval.putFrom(this.intervalSet.get(positionInIntersectionSet).getTo());//return x2
                    oneXorTwoX=true;
                }
                else {
                    if (ourInputX>=this.intervalSet.get(positionInIntersectionSet+1).getFrom()){//x>=x1n
                        positionInIntersectionSet++; 
                        calculatesMainFunctionA(variableInterval,positionInIntersectionSet,ourInputX);
                    }
                    else
                    { 
                        if ((ourInputX-this.intervalSet.get(positionInIntersectionSet).getTo())==(this.intervalSet.get(positionInIntersectionSet+1).getFrom()-ourInputX)){//f=f1
                            variableInterval.putTo(this.intervalSet.get(positionInIntersectionSet+1).getFrom());
                            variableInterval.putFrom(this.intervalSet.get(positionInIntersectionSet).getTo());
                            oneXorTwoX=false;
                        }
                        if ((ourInputX-this.intervalSet.get(positionInIntersectionSet).getTo())>(this.intervalSet.get(positionInIntersectionSet+1).getFrom()-ourInputX)){//f>f1
                            variableInterval.putFrom(this.intervalSet.get(positionInIntersectionSet+1).getFrom());
                            oneXorTwoX=true;
                        }
                        else{  
                            variableInterval.putFrom(this.intervalSet.get(positionInIntersectionSet).getTo());
                            oneXorTwoX=true;
                        }
                    }
                }
            }
        }
        if (oneXorTwoX==true){
            System.out.print("Для заданного числа X результатом будет такое число: ");
            System.out.print(variableInterval.toString(variableInterval.getFrom()));
            System.out.println(" ;-)");
        }
        else {
            System.out.print("Для заданного числа X результатом будет 2 числа: ");
            System.out.print(variableInterval.toString(variableInterval.getFrom()));
            System.out.println(" и "+variableInterval.toString(variableInterval.getTo()));
        }
    }

на экране будет

Привет
Привет
Ответом будет 5
Ответом будет 5
Answer 1

Вот эта часть кода:

if (ourInputX>=this.intervalSet.get(positionInIntersectionSet+1).getFrom()){//x>=x1n
                positionInIntersectionSet++; 
                    calculatesMainFunctionA(variableInterval,positionInIntersectionSet,ourInputX);
            }

Вы зовете метод опять, и соответственно получаете опять Привет! и опять ответ.

READ ALSO
Как получить число прописью на разных языках (рус., англ., укр. и прочие)? [требует правки]

Как получить число прописью на разных языках (рус., англ., укр. и прочие)? [требует правки]

Как на java в цикле от 0 до 1000 напечатать четные числа прописью? Есть ли где то готовое решение для получения числа прописью?

165
на google поиск появилось не существующий линки на мой сайт

на google поиск появилось не существующий линки на мой сайт

На поиске google появилось такие ссылки на мой сайт

218
Зависшие процессы Office interop

Зависшие процессы Office interop

Предположим, в приложении необходимо использовать Office interop(без вариантов) Всем известно, что он создает приложения office без интерфейса и через...

336