java:break_loop_statements

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

java:break_loop_statements [2015/09/18 10:58]
gthanos [Η εντολή continue]
java:break_loop_statements [2017/02/16 08:09]
Line 1: Line 1:
-====== Εντολές τερματισμού ή ελέγχου της ανακύκλωσης ====== 
- 
-==== Η εντολή break ==== 
- 
-Η εντoλή **break** τερματίζει την υφιστάμενη ανακύκλωση και θέτει την ροή του προγράμματος αμέσως μετά το τέλος της εντολής ανακύκλωσης. Η εντολή **break** έχει δύο μορφές την //labeled// και την //unlabeled// μορφή. Η unlabeled μορφή είναι η μορφή που γνωρίζετε από την γλώσσα **C**. Ένα της παράδειγμα της unlabeled μορφής δίνουμε παρακάτω. 
- 
-<code java 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"); 
-    } 
-  } 
-} 
-</code> 
- 
-Η //labeled// μορφή της εντολής **break** έχει νόημα όταν έχουμε περισσότερες από μία εμφωλευμένες εντολές ανακύκλωσης **while**, **do-while**, **for** και θέλουμε να τερματίζουμε την εξωτερική ανακύκλωση. Ένα παράδειγμα χρήσης της εντολής //labeled// **break** μπορείτε να δείτε παρακάτω. 
- 
-<code java 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"); 
-    } 
-  } 
-} 
-</code> 
- 
-Η ροή του προγράμματος συνεχίζεται μετά τις δύο εντολές ανακύκλωσης **for**.  
- 
-==== Η εντολή continue ==== 
- 
-Σε αναλογία με την εντολή ''for'' και η εντολή ''continue'' διαθέτει //labeled// και //unlabeled// μορφή. Δείτε τα παρακάτω παραδείγματα 
- 
-<code java 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."); 
-  } 
-} 
-</code> 
- 
-<code java 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"); 
-  } 
-} 
-</code> 
- 
- 
  
java/break_loop_statements.txt · Last modified: 2017/02/16 08:09 (external edit)