This is an old revision of the document!
Table of Contents
Εντολές τερματισμού και ελέγχου της ανακύκλωσης
Η εντολή break
Η εντoλή break τερματίζει την υφιστάμενη ανακύκλωση και θέτει την ροή του προγράμματος αμέσως μετά το τέλος της εντολής ανακύκλωσης. Η εντολή break έχει δύο μορφές, την labeled και την unlabeled μορφή. Η unlabeled μορφή είναι η μορφή που γνωρίζετε από την γλώσσα C. Ένα της παράδειγμα της unlabeled μορφής δίνουμε παρακάτω.
- BreakDemo.java
class BreakDemo { public static void main(String[] args) { int[] arrayOfInts = { 32, 87, 3, 589, 12, 1076, 2000, 8, 622, 127 }; int searchfor = 12; int i; boolean foundIt = false; for (i = 0; i < arrayOfInts.length; i++) { if (arrayOfInts[i] == searchfor) { foundIt = true; break; } } if (foundIt) { System.out.println("Found " + searchfor + " at index " + i); } else { System.out.println(searchfor + " not in the array"); } } }
Η labeled μορφή της εντολής break έχει νόημα όταν έχουμε περισσότερες από μία εμφωλευμένες εντολές ανακύκλωσης while, do-while, for και θέλουμε να τερματίζουμε την εξωτερική ανακύκλωση. Ένα παράδειγμα χρήσης της εντολής labeled break μπορείτε να δείτε παρακάτω.
- BreakWithLabelDemo.java
class BreakWithLabelDemo { public static void main(String[] args) { int[][] arrayOfInts = { { 32, 87, 3, 589 }, { 12, 1076, 2000, 8 }, { 622, 127, 77, 955 } }; int searchfor = 12; int i; int j = 0; boolean foundIt = false; search: for (i = 0; i < arrayOfInts.length; i++) { for (j = 0; j < arrayOfInts[i].length; j++) { if (arrayOfInts[i][j] == searchfor) { foundIt = true; break search; } } } if (foundIt) { System.out.println("Found " + searchfor + " at " + i + ", " + j); } else { System.out.println(searchfor + " not in the array"); } } }
Εκτελέστε τα προγράμματα για να διαπιστώσετε την λειτουργία της κανονικής και της labeled μορφής της εντολής break. Η ροή του προγράμματος συνεχίζεται μετά τις δύο εντολές ανακύκλωσης for.
Η εντολή continue
Σε αναλογία με την εντολή for
και η εντολή continue
διαθέτει labeled και unlabeled μορφή. Δείτε τα παρακάτω παραδείγματα:
- ContinueDemo.java
class ContinueDemo { public static void main(String[] args) { String searchMe = "peter piper picked a " + "peck of pickled peppers"; int max = searchMe.length(); int numPs = 0; for (int i = 0; i < max; i++) { // interested only in p's if (searchMe.charAt(i) != 'p') continue; // process p's numPs++; } System.out.println("Found " + numPs + " p's in the string."); } }
- ContinueWithLabelDemo.java
class ContinueWithLabelDemo { public static void main(String[] args) { String searchMe = "Look for a substring in me"; String substring = "sub"; boolean foundIt = false; int max = searchMe.length() - substring.length(); test: for (int i = 0; i <= max; i++) { int n = substring.length(); int j = i; int k = 0; while (n-- != 0) { if (searchMe.charAt(j++) != substring.charAt(k++)) { continue test; } } foundIt = true; break test; } System.out.println(foundIt ? "Found it" : "Didn't find it"); } }
Εκτελέστε τα προγράμματα για να διαπιστώσετε την λειτουργία της κανονικής και της labeled μορφής της εντολής continue.
Προηγούμενο: Εντολές ανακύκλωσης | Περιεχόμενα | Επόμενο: Η κλάση |