Inne działy

Java przykładowe programy

 

Błędy logiczne w Java

 

Błędy logiczne to, te wprowadzone przez programistę, gdy kod nie działa, jak spodziewał się.To może być trudne do wyśledzenia. Na szczęście, NetBeans ma kilka wbudowanych narzędzi, które pomogą Ci zlokalizować problem.

Po pierwsze, zbadaj ten kod:

 

package naukabledy;
public class NaukaBledy {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        
        int LiczbaZnaków = 0;
        String sprawdz_slowo = "Debuggowanie";
        String pojedynczy_znak = "";
        int i;
        
        for(i = 0; i < sprawdz_slowo.length(); i++){
            pojedynczy_znak = sprawdz_slowo.substring(1,1);
            if(pojedynczy_znak.equals("g")){
                LiczbaZnaków++;
            }
        }
        System.out.println("G zostało znalezione " + LiczbaZnaków + " razy.");
    }          
}

Wpisz kod, przy użyciu programu, który już masz, lub rozpocznij nowy projekt. Co staramy się zrobić to policzyć, ile razy litera "g" występuje w słowie "Debuggowanie". Odpowiedź jest oczywiście 2. Jednak po uruchomieniu programu w oknie Output wyświetla się informacja.:

" run:

G zostało znalezione 0 razy.

BUILD SUCCESSFUL (total time: 0 seconds) "

Więc zrobiliśmy błąd gdzieś w naszym kodzie. Ale gdzie on jest? Program wykonuje się OK, nie wyrzuca żadnych wyjątków, które moglibyśmy przeanalizować w oknie Output. Więc co robić?

Do śledzenia problemów z kodem, NetBeans pozwala dodać coś, co nazywa się Breakpoint.

Kliknij na marginesie okna kodu, aby dodać nowy punkt przerwania:

 

 

Z menu NetBeans, kliknij przycisk Debug> Debug Project.NetBeans przejdzie do punktu przerwania. Teraz jest wstrzymane wykonanie kodu w tym miejscu.Należy również zapoznać się z nowym paskiem narzędzi:

 

 

Pierwsze trzy przyciski pozwalają zatrzymać sesję debugowania, pauza, i dalej. Kolejne pięć przycisków pozwalają wejść do kodu, wykonać krok do przodu w kodzie, wyjść lub przejść do kursora.

Można również nacisnąć klawisz F5, aby kontynuować. Kod powinien działać normalnie z Breakpoint. Sesja debugowania będzie zakończona.

Po zakończeniu sesji debugowania, kliknij z powrotem na Breakpoint aby się go pozbyć. Teraz dodaj Breakpoint do linii gdzie znajduje się instrukcja pętli for:

 

 

Teraz kliknij przycisk Debug > New Watch. Watch pozwala śledzić, co jest w zmiennej. Więc wpisz literę i. W oknie dialogowym Watch i kliknij przycisk OK:

 

 

Dodaj kolejną instrukcję Watch, a następnie wpisz pojedynczy_znak. Kliknij przycisk OK. Dodać trzeci zegarek i wpisz LiczbaZnaków . Zobaczysz te trzy zmienne na dole ekranu:

 

 

Teraz naciśnij przycisk ikonę Step Into na pasku narzędzi.

Lub po prostu naciśnij klawisz F7 na klawiaturze. Naciskaj klawisz F7 i zobacz, co dzieje się w oknie Watch. Należy zauważyć, że zmienna i wzrasta o 1 za każdym razem. Ale dwie inne zmienne pozostają takie same:

 

 

Ponieważ nie ma nic w zmiennej pojedynczy_znak zmienna LiczbaZnaków ma wartość zero. Więc znaleźliśmy nasz problem - nasz fragmentu kodu nie działa tak, jak chcieliśmy i nie pobieranie jakichkolwiek znaków.

Zatrzymaj sesję debugowania i zmień linię kodu na poniższą:

 

pojedynczy_znak = sprawdz_slowo.substring(i,i + 1);

Teraz ponownie uruchom sesję debugowania. Naciskaj klawisz F7, aby przejść przez każdą linię w pętli. Tym razem powinieneś zobaczyć że zmienne pojedynczy_znak i LiczbaZnaków zmieniają swoją zawartość.

Gdy kończy się wykonywanie kodu, powinieneś zobaczyć w oknie Output komunikat jak poniżej:

 

" run:

G zostało znalezione 2 razy.

BUILD SUCCESSFUL (total time: 0 seconds)"

Mamy teraz poprawną odpowiedź.

Więc jeśli sprawy nie idą zgodnie z planem, z kodem, spróbuj ustawić punkt przerwania i niektóre zegarki dla swoich zmiennych. Następnie rozpocznij sesję debugowania.


W następnym rozdziale będziemy poznawali zupełnie inny temat: Jak otworzyć pliki tekstowe w języku Java.

 

Zobacz nasze wszystkie kursy

WWW


HTML
HTML - Znaczniki
CSS - Tutorial
CSS - Selektory
PHP
JavaScript

XML

XSLT

Bazy danych


SQL
SQLite
MySQL
PostgreSQL

 

 

Programowanie


C
C++
C#
Java
VisualBasic
Python

Linux


Podstawy Linuxa
Bash
Linuks artykuły

Windows


Excel funkcje
Windows wskazówki
Outlook

Pozotałe działy


Programy
Rozrywka

 

 

 

This email address is being protected from spambots. You need JavaScript enabled to view it.