The Pętla odczytu-ewaluacji-druku Lub ODPOWIEDŹ jest interfejsem powłoki. Interfejs ten odczytuje i ocenia każdą linię danych wejściowych, a następnie drukuje wynik. The Pętla odczytu-ewaluacji-druku pomaga nam w interakcji ze środowiskiem wykonawczym aplikacji obecnym w określonym stanie. Polecenia są odczytywane i oceniane przez ODPOWIEDŹ i wydrukuj wynik. Po wydrukowaniu wyniku REPL wraca do początku, aby przeczytać, ocenić i wydrukować nasze kolejne dane wejściowe.
Używając REPL, możemy łatwo napisać i przetestować nasz kod Java bez jego kompilacji i zobaczyć dane wyjściowe bezpośrednio na konsoli.
Java nie ma już REPL?
Zdecydowanie REPL musi być w ustalonym języku, takim jak Jawa . Ale nie wszystkie języki mają REPL, a Java jest jednym z nich. Najbardziej potrzebowali tego programiści Java. Java ma od jakiegoś czasu coś takiego jak REPL jako Java Beanshell. Jednak projekt nie był w pełni funkcjonalnym REPL z innymi językami. W tym celu w 2016 roku wydano Java 9, która zapewnia w pełni funkcjonalne środowisko REPL.
Dlaczego REPL jest tak pomocny?
Korzystając z REPL, nie musimy kompilować ani testować naszego kodu Java za pomocą polecenia javac. Po użyciu REPL,
- Do napisania programu w Javie nie jest potrzebny edytor.
- Nie ma potrzeby zapisywania programu Java.
- Nie ma potrzeby kompilowania programu Java.
- Nie ma potrzeby edytowania, jeśli pojawi się jakikolwiek błąd w czasie kompilacji lub wykonania.
- Nie ma potrzeby powtarzania procesu.
Możemy oceniać metody, klasy i instrukcje bez tworzenia klasy. Program „Hello World” można także napisać bez tworzenia klasy.
matematyka w Javie
Wymagania dotyczące korzystania z REPL
Jest tylko jeden wymóg, aby go użyć ODPOWIEDŹ , tj. powinniśmy mieć Java 9 lub nowsza wersja w naszym systemie. Jeżeli w naszym systemie jest zainstalowana Java 9 to jesteśmy gotowi do użycia ODPOWIEDŹ . Aby sprawdzić prąd wersja Javy w systemie otwórz wiersz poleceń i wpisz następujące polecenie:
java -version
Korzystanie z REPL
Poniżej znajduje się kilka przykładów REPL, w których oceniamy wyrażenia matematyczne, obliczamy ciąg Fibonacciego, tworzymy klasę dynamiczną, znamy historię i modyfikujemy klasę.
Przykład 1: Obliczanie wyrażeń matematycznych
ciąg konkatenacyjny w Javie
jshell> double a = 10; jshell> a= Math.pow(a, 2); jshell> a+20 jshell> /vars jshell> double data = Math.pow(8.3, 5);
Opis:
W pierwszej linii tworzymy zmienną 'A' typu double i ustawiamy jej wartość początkową na 10. Następnie znajdujemy kwadrat zmiennej „a” i zapisujemy go w tej samej zmiennej. Następnie po prostu dodajemy 20 do zmiennej „a”. Jshell umieści wynik w zmiennej tymczasowej „3 dolary” . Następnie wykonujemy '/którego' polecenie, które pokaże nam wszystkie utworzone zmienne. Na koniec tworzymy zmienną 'dane' typu double i zapisz 5tpotęga cyfry 8.3.
Wyjście:
polecenie powrotu Java
Przykład 2: Obliczanie szeregu Fibonacciego
jshell> int fibo(int no) (no == 1)) ...> return no;e all possible completions; total possible completions ...> else ...> return fibo(no-1)+fibo(no-2); ...> jshell> /methods jshell> fibo(11) jshell> fibo(12) jshell> int[] arr = { 1,2,3,4,5,6}; jshell> for(int i: arr){ ...> System.out.println(fibo(i)); ...> }
Opis:
W pierwszych sześciu liniach kodu tworzymy metodę szeregu Fibonacciego. Następnie używamy /metody polecenie Jshell, które pokazuje nam wszystkie dostępne metody. W kolejnych dwóch wierszach testujemy fibo() metodę poprzez przekazywanie wartości całkowitych. Tworzymy tablicę przyr aby określić, ile wyrazów chcemy otrzymać ciąg Fibonacciego. Następnie iterujemy każdą wartość arr, używając dla każdej pętli. Każdą wartość tablicy przekazujemy do metody fibo() i drukujemy wartość zwracaną.
Wyjście:
Przykład 3: REPL do ponownego użycia
podzielony przez ciąg Java
jshell> int fibo(int no){ ...> return 2; ...> } jshell> for(int i: arr){ ...> System.out.println(fibo(i)); ...> }
Opis:
W powyższym kodzie tworzymy metodę fibo() z tym samym typem zwracanym i argumentem, co stworzyliśmy wcześniej. W tym momencie Jshell zastępuje poprzedni „fibo()” metodę z obecną. Następnie przekazujemy każdą wartość arr do funkcji, aby upewnić się, czy nasza metoda fibo() zostanie nadpisana, czy nie.
Wyjście:
Przykład 4: Definiowanie klasy
jshell> class Student{ ...> public String Name; ...> public int age; ...> public String course; ...> public int semester; ...> public Student(String Name, int age, String course, int semester){ ...> this.Name=Name; ...> this.age=age; ...> this.course = course; ...> this.semester=semester; ...> } ...> public void showData(){ ...> System.out.println('Name= '+ Name); ...> System.out.println('Age= '+ age); ...> System.out.println('Course= '+ course); ...> System.out.println('Semester= '+semester); ...> } ...> }
Opis:
W powyższym kodzie tworzymy klasę 'Student' , które mają imię i nazwisko, wiek, kurs i semestr. Tworzymy konstruktor, w którym ustawiamy wartości tych zmiennych. Po konstruktorze tworzymy metodę, która pokazuje wartość wszystkich zmiennych dla każdej instancji klasy.
Wyjście:
Przykład 5: Tworzenie instancji klasy
jshell> Student s1 = new Student( 'Shubham Rastogi', 18, 'MCA', 4); jshell> Student s2 = new Student( 'Kartik Rastogi', 23, 'MCA', 3); jshell> /vars jshell> s1.showData(); jshell> s2.showData();
Opis:
konwencje nazewnictwa Java
W powyższym kodzie tworzymy dwie instancje klasy i przekazujemy konstruktorowi wartość dla wszystkich zmiennych klasy. Następnie uruchamiamy polecenie Jshell, aby sprawdzić, czy zostały utworzone zmienne s1 i s2, czy nie. Na koniec wywołujemy metodę showData(), aby wyświetlić dane każdej instancji.
Wyjście: