Jak sprawdzic czy funkcja sama sie wywolywala?

0

Mam sobie taki przykladowy programik:

package hello;

import java.util.Scanner;

public class Main {
    
    public static void main(String[] args) {
        wyswietl("metoda");
    }
    
    static void wyswietl(String haslo){
        Scanner myScanner = new Scanner(System.in);
        String odp;
        
        System.out.println(haslo);
        System.out.println("Jeszcze raz? ");
        odp = myScanner.next();
        if (odp.equals("t")) wyswietl(haslo+" w metodzie");
        
        System.out.println("A to sie wyswietla tylko z pierwszego wywolania!");
    }
    
}

Jak sprawic zeby tekst "A to sie wyswietla tylko z pierwszego wywolania!" zostal wywolany rzeczywiscie tylko z pierwszego wywolania funkcji a z podwywolan juz nie? Podkreslam ze nie chodzi mi o to aby pojawil sie tylko raz ale aby pojawil sie rzeczywiscie tylko z pierwszego wywolania. Innymi slowy jak sprawdzic czy funkcja ktora sie obecnie wykonuje zostala wywolana przez sama siebie czy tez jest to powiedzmy.... pierwsza instancja.

0

rekurencja w tym prypadku to zly pomysl
moglbys zrobic "workarounda" w postaci boolowskiej zmiennej, ale lepszym rozwiazaniem beda dwie metody

pozdrawiam

0

No i okazalo sie wcale nie takie trudne. [glowa] Jesli argument funkcji sie zmienia (tak jak w tym przykladzie) ti wystarczy dodac warunek
if ((haslo.indexOf(" w metodzie"))==-1) System.out.println("A to sie wyswietla tylko z pierwszego wywolania!");

Nie ma to jak sie dobrze wyspac....

1 użytkowników online, w tym zalogowanych: 0, gości: 1