george1703 Δημοσ. 4 Νοεμβρίου 2019 Δημοσ. 4 Νοεμβρίου 2019 Θελω να κάνω υλοποίηση μιας άσκησης Reverse.java Below is the syntax highlighted version of Reverse.java from §1.3 Stacks and Queues. /****************************************************************************** * Compilation: javac Reverse.java * Execution: java Reverse * Dependencies: Stack.java StdOut.java StdIn.java * * Read a sequence of integers from standard input and print them * in reverse order. * * % java Reverse * 1 2 3 4 5 * 5 * 4 * 3 * 2 * 1 ******************************************************************************/ public class Reverse { public static void main(String[] args) { Stack<Integer> stack = new Stack<Integer>(); while (!StdIn.isEmpty()) { stack.push(StdIn.readInt()); } for (int i : stack) { StdOut.println(i); } } } αλλά δημιουργείται ατερμον βρόχος. Συγκεκριμένα στο Netbeans όταν ξεκινάει να τρεχει το πρόγραμμα δεν σταματάει , όσους integers και αν δωσω ή αν πληκτρολογήσω κενό. Πως γίνεται false η συνθηκη?
3c0r1z Δημοσ. 4 Νοεμβρίου 2019 Δημοσ. 4 Νοεμβρίου 2019 Τα StdIn και StdOut τι ακριβώς κάνουν; Είναι κλάσεις που έχεις υλοποιήσει εσύ; Μπορείς να βάλεις ένα breakpoint όταν εκτελείται η StdIn.readInt() και να ελέγξεις τυχόν τιμές για μεταβλητές της StdIn.
george1703 Δημοσ. 4 Νοεμβρίου 2019 Μέλος Δημοσ. 4 Νοεμβρίου 2019 (επεξεργασμένο) q Επεξ/σία 4 Νοεμβρίου 2019 από george1703
3c0r1z Δημοσ. 4 Νοεμβρίου 2019 Δημοσ. 4 Νοεμβρίου 2019 Να φανταστώ ότι το βρήκες μόνος σου. Για όσους ενδιαφέρονται η συνθήκη παραμένει αληθείς όσο πληκτρολογούνται αριθμοί. Αν πληκτρολογηθεί κάποιο γράμμα ή άλλο σύμβολο δημιουργείται ένα Exception και τερματίζει το πρόγραμμα. Αν το while συμπεριληφθεί μέσα σε ένα try/catch block δεν τερματίζεται απρόοπτα το πρόγραμμα και συνεχίζει κανονικά μετά το catch block.
george1703 Δημοσ. 5 Νοεμβρίου 2019 Μέλος Δημοσ. 5 Νοεμβρίου 2019 3 ώρες πριν, 3c0r1z είπε Να φανταστώ ότι το βρήκες μόνος σου. Για όσους ενδιαφέρονται η συνθήκη παραμένει αληθείς όσο πληκτρολογούνται αριθμοί. Αν πληκτρολογηθεί κάποιο γράμμα ή άλλο σύμβολο δημιουργείται ένα Exception και τερματίζει το πρόγραμμα. Αν το while συμπεριληφθεί μέσα σε ένα try/catch block δεν τερματίζεται απρόοπτα το πρόγραμμα και συνεχίζει κανονικά μετά το catch block. Δηλαδή αν δίνει ο χρήστης ακέραιους, το πρόγραμμα δε θα σταματάει ποτέ;
3c0r1z Δημοσ. 5 Νοεμβρίου 2019 Δημοσ. 5 Νοεμβρίου 2019 2 ώρες πριν, george1703 είπε Δηλαδή αν δίνει ο χρήστης ακέραιους, το πρόγραμμα δε θα σταματάει ποτέ; Ναι δεν θα σταματήσει να εκτελείται. try { while(!StdIn.isEmpty()) stack.add(StdIn.readInt()); } catch(InputMismatchException ignore) {} Ο παραπάνω κώδικας θα διαβάζει αριθμούς μέχρι ο χρήστης να πληκτρολογήσει κάποιο μη αριθμό. Σε αυτή την περίπτωση θα εκτελεστεί ο κώδικας που ακολουθεί μετά την catch()
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα