Βίντεο: Curso Java 09 - Bucles for anidados @JoseCodFacilito 2024
Τα λογικά λάθη στον προγραμματισμό Java μπορεί να είναι εξαιρετικά δύσκολο να βρεθούν επειδή δεν αντικατοπτρίζουν κανένα είδος κωδικοποίησης ή κάποιο σφάλμα στη χρήση των στοιχείων γλώσσας Java. Ο κώδικας λειτουργεί τέλεια όπως είναι γραμμένος - απλώς δεν εκτελεί το έργο που αναμενόταν να εκτελέσει.
Ως αποτέλεσμα, τα λογικά σφάλματα μπορεί να είναι τα δυσκολότερα λάθη που θα βρεθούν. Θα χρειαστεί να περάσετε το χρόνο περνώντας από τον κώδικα σας αναζητώντας έναν ακριβή λόγο για το σφάλμα. Ακολουθεί μια λίστα με κοινά λανθασμένα λάθη που αντιμετωπίζουν οι προγραμματιστές Java:
-
Χρήση του σωστού πρωτεύοντος χειριστή: Η σειρά με την οποία η Java ερμηνεύει τους χειριστές είναι σημαντική. Οι εφαρμογές συχνά παράγουν λάθος αποτέλεσμα επειδή ο προγραμματιστής δεν συμπεριέλαβε παρενθέσεις στις σωστές θέσεις.
Για παράδειγμα, το ακόλουθο παράδειγμα παράγει έξοδο των 11, 13, 9 και 8 από τις τέσσερις μεταβλητές, όλες λόγω της θέσης (ή της έλλειψης) των παρενθέσεων.
public class OperatorError {public static void main (String [] args) {// Δημιουργήστε μερικές μεταβλητές. int MyVarl = 5 + 4 * 3/2; int MyVar2 = (5 + 4) * 3/2; int MyVar3 = (5 + 4) * (3/2). int MyVar4 = (5 + (4 * 3)) / 2. // Εξαγωγή του αποτελέσματος. Σύστημα. έξω. (+ MyVar3 +) nMyVar3: "+ MyVar3 +" nMyVar4: "+ MyVar4 +")
-
μετράει τα πράγματα λανθασμένα. Οι άνθρωποι συνηθίζουν να ξεκινούν μετρήσεις με 1 και οι υπολογιστές αρχίζουν συχνά να μετράνε με 0. Έτσι, δεν είναι ασυνήθιστο να διαπιστώσετε ότι οι εφαρμογές είναι ακριβώς ένα απλό κατά την εκτέλεση μιας εργασίας, ανεξάρτητα από το αν η εργασία αυτή εκτελεί βρόχο ή εργάζεται με μια συλλογή αντικειμένων. Υποθέτοντας ότι μια συνθήκη είναι αληθής όταν δεν είναι:
-
Οι προγραμματιστές θα δουν συχνά τη δήλωση που χρησιμοποιείται για τον ορισμό μιας συνθηκών και υποθέτουν ότι η δήλωση είναι αληθής (ή ψευδής) χωρίς να επαληθεύει τη λογική της δήλωσης. Η χρήση μιας δήλωσης ή δήλωσης όταν πραγματικά ήθελε να χρησιμοποιήσετε ένα και μια δήλωση μπορεί επίσης να προκαλέσει προβλήματα. Η λογική που χρησιμοποιείται για τη λήψη αποφάσεων προκαλεί πολλά προγραμματιστές, ακόμη και έμπειρους προγραμματιστές, πολλά προβλήματα. Να επαληθεύετε πάντα τις υποθέσεις σας για δηλώσεις υπό όρους.
-
Δεν μπορείτε να υποθέσετε ότι οι αριθμοί κυμαινόμενου σημείου θα δώσουν συγκεκριμένο αριθμό. Αυτό σημαίνει ότι δεν μπορείτε να ελέγξετε έναν αριθμό κινητής υποδιαστολής για ισότητα σε κάποια συγκεκριμένη τιμή - πρέπει να χρησιμοποιήσετε ένα εύρος τιμών για να εκτελέσετε τον έλεγχο. Οι αριθμοί κυμαινόμενου σημείου είναι πάντα μια προσέγγιση στην Java. Βασιζόμενη σε ακέραιες τιμές για μέτρηση τιμών:
-
Τα ακέραια είναι μεγάλα για την καταμέτρηση στοιχείων επειδή είναι ακριβή.Ωστόσο, πολλές αθροιστικές πράξεις μαθηματικών δημιουργούν ανακριβή αποτελέσματα. Αυτό ισχύει ιδιαίτερα για τη διαίρεση, επειδή το υπόλοιπο παραμένει πάντα εκτός λειτουργίας. (Ο αριθμός στρογγυλοποιείται προς τα κάτω.) Χρησιμοποιήστε τις τιμές των κυμαινόμενων σημείων ή τον τύπο αντικειμένου BigDecimal όταν χρειάζεται να μετρήσετε κάτι και η ακρίβεια είναι σημαντική. Τοποθέτηση ενός ερωτηματικού:
-
Είναι δυνατό να δημιουργήσετε κώδικα Java που να συντάσσεται και να τρέχει τέλεια, παρά το γεγονός ότι έχει ένα ερωτηματικό σε λάθος σημείο. Εδώ είναι ένα παράδειγμα: δημόσια τάξη ForLoopError {δημόσια static κενό main (String [] args) {// Δηλώστε τη μεταβλητή. int Count. // Δημιουργήστε το βρόχο. για (Count = 1, Count <= 10, count ++). {// Αποτέλεσμα του αποτελέσματος. Σύστημα. έξω. println ("Count is" + Count)?}}}
Παρατηρήστε ότι το ερωτηματικό εμφανίζεται αμέσως μετά τη δήλωση for για παρά μετά από το μπλοκ κώδικα όπως θα έπρεπε. Αντί να εκτυπώνουμε μεμονωμένες τιμές του Count, αυτό το παράδειγμα τυπώνει μια μόνο πρόταση που λέει Count είναι 11.