Video: Learn C language in 30 Minutes & Start Coding For Beginners in Hindi 2025
Logiske fejl i Java-programmering kan være yderst vanskelige at finde, fordi de ikke afspejler nogen form for kodningsproblem eller en fejl i brugen af Java-sprogelementer. Koden kører perfekt som skrevet - det udfører bare ikke den opgave, du forventede at udføre.
Som følge heraf kan logiske fejl være de sværeste fejl at finde. Du skal bruge tid på at gå igennem din kode på udkig efter en præcis årsag til fejlen. Her er en liste over almindelige logiske fejl, som Java-udviklere støder på:
-
Brug af forkerte operatørpræference: Den rækkefølge, hvori Java fortolker operatører, er vigtig. Applikationer producerer ofte det forkerte resultat, fordi udvikleren ikke har parenteser på de rigtige steder.
Eksempelvis producerer følgende eksempel output fra 11, 13, 9 og 8 fra de fire variabler, alt sammen på grund af parentesernes placering (eller mangel).
public class OperatorError {public static void main (String [] args) {// Opret nogle variabler. int MyVar1 = 5 + 4 * 3/2; int MyVar2 = (5 + 4) * 3/2; int MyVar3 = (5 + 4) * (3/2); int MyVar4 = (5 + (4 * 3)) / 2; // Udfør resultatet. System. ud. printnn ("MyVar1:" + MyVar1 + "nMyVar2:" + MyVar2 + "nMyVar3:" + MyVar3 + "nMyVar4:" + MyVar4);}}
-
Definerer det forkerte tal: Måske den mest almindelige logiske fejl tæller ting forkert. Mennesker er vant til at starte tæller med 1, og computere starter ofte med 0. Så det er ikke ualmindeligt at finde ud af, at applikationer netop er engang i at udføre en opgave, om denne opgave kører en loop eller arbejder med en samling af elementer.
-
Forudsat at en tilstand er sand, når den ikke er: Udviklere vil ofte se på sætningen, der bruges til at definere en betingelse og antage, at erklæringen er sand (eller falsk) uden at verificere logikken af erklæringen.
Brugen af en eller erklæring, når du virkelig mener at bruge en og erklæring, kan også medføre problemer. Den logik, der anvendes til at træffe beslutninger, forårsager mange udviklere, selv erfarne udviklere, mange problemer. Kontroller altid dine antagelser for betingede udsagn.
-
Baseret på flydende punktnumre til præcisionsarbejde: Du kan ikke antage, at svingpunktstal vil levere et bestemt nummer. Det betyder, at du ikke kan kontrollere et flydende punktnummer for ligestilling til en bestemt værdi - du skal i stedet bruge en række værdier til at udføre checken. Flydende punktnumre er altid en tilnærmelse i Java.
-
Stol på integerværdier til måling af værdier: Integrer er gode til at tælle elementer, fordi de er præcise.Imidlertid skaber mange integermatematiske operationer upræcise resultater. Dette gælder især for division, fordi resten er altid slukket. (Nummeret er afrundet.) Brug svingpunktsværdier eller BigDecimal objekttype, når du skal måle noget, og præcision er vigtig.
-
Misplacere et semikolon: Det er muligt at oprette Java-kode, som kompilerer og kører perfekt, trods at have en semikolon på det forkerte sted. Her er et eksempel:
offentlig klasse ForLoopError {public static void main (String [] args) {// Erklære variablen. int grev; // Opret loop. for (Grev = 1; Grev <= 10; Tæl ++); {// Udfør resultatet. System. ud. println ("Count er" + Grev);}}}
Bemærk at semikolonen vises umiddelbart efter forklaringen, snarere end efter kodeblokken som det skal. I stedet for at udskrive individuelle værdier af Grev udskriver dette eksempel en enkelt sætning, der siger, at Grev er 11.