Video: Curso Java 14 - Leer y Escribir Ficheros @JoseCodFacilito 2025
Logiske feil i Java-programmering kan være ekstremt vanskelig å finne fordi de ikke gjenspeiler noen form for kodingsproblem eller en feil ved bruk av Java-språkelementer. Koden går perfekt som skrevet - det utfører bare ikke oppgaven du forventet å utføre.
Som et resultat kan logiske feil være de vanskeligste feilene å finne. Du må bruke tid på å gå gjennom koden din på jakt etter en presis grunn til feilen. Her er en liste over vanlige logiske feil som Java-utviklere støter på:
-
Bruke feil operatørpreferanse: Ordren der Java tolker operatører er viktig. Programmer gir ofte feil resultat fordi utvikleren ikke inneholdt parenteser på de riktige stedene.
Eksempelvis produserer følgende eksempel utganger av 11, 13, 9 og 8 fra de fire variablene, alt på grunn av plasseringen (eller mangelen) av parentesene.
offentlig klasse OperatorError {static static void main (String [] args) {// Opprett noen 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; // Utfør resultatet. System. ute. PrintVn ("MyVar1:" + MyVar1 + "nMyVar2:" + MyVar2 + "nMyVar3:" + MyVar3 + "nMyVar4:" + MyVar4);}}
-
Definere feil telle: Muligens den vanligste logiske feilen teller ting feil. Folk er vant til å starte teller med 1, og datamaskiner begynner ofte med 0. Så det er ikke uvanlig å finne at programmer er nettopp engang i å utføre en oppgave, om denne oppgaven kjører en loop eller arbeider med en samling av gjenstander.
-
Forutsatt at en tilstand er sant når den ikke er: Utviklere vil ofte se på setningen som brukes til å definere en betingelse og anta at setningen er sann (eller falsk) uten å verifisere logikken av uttalelsen.
Bruk av en eller setning når du virkelig ment å bruke en og setning, kan også føre til problemer. Logikken som brukes til å ta beslutninger, forårsaker mange utviklere, selv erfarne utviklere, mange problemer. Kontroller alltid antagelsene dine for betingede utsagn.
-
Stole på flytpunktstall for presisjonsarbeid: Du kan ikke anta at flytende punktnumre vil levere et bestemt nummer. Dette betyr at du ikke kan kontrollere et flytende punktnummer for likestilling til en bestemt verdi - du må i stedet bruke en rekke verdier for å utføre sjekken. Flytepunktstall er alltid en tilnærming i Java.
-
Stole på heltallverdier for å måle verdier: Helheter er gode for å telle elementer fordi de er presise.Men mange integermatematiske operasjoner skaper upresise resultater. Dette gjelder spesielt for divisjon, fordi resten er alltid slått av. (Nummeret er avrundet.) Bruk flytende punktverdier eller BigDecimal objekttype når du må måle noe og presisjon er viktig.
-
Feilsøke et semikolon: Det er mulig å lage Java-kode som kompilerer og kjører perfekt, til tross for at du har et semikolon på feil sted. Her er et eksempel:
offentlig klasse ForLoopError {static static void main (String [] args) {// Erklær variabelen. int Count; // Opprett løkken. for (Count = 1; Count <= 10; count ++); {// Utfør resultatet. System. ute. println ("Count er" + Count);}}}
Legg merke til at semikolonet vises umiddelbart etter forklaringen, snarere enn etter kodeblokken som det burde. I stedet for å skrive ut individuelle verdier av Count, skriver dette eksemplet en enkelt setning som sier at Count er 11.
