java:control_flow

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
java:control_flow [2015/02/09 05:10]
gthanos
java:control_flow [2017/02/10 15:39]
gthanos
Line 1: Line 1:
-====== ​Έλεγχος ροής προγράμματος ======+====== ​Ροή προγράμματος ======
  
-Αναφορικά ​με τον έλεγχο ροής προγράμματος ​μπορείτε ​(//​for,​while,​do-while,​if,​switch//​ κλπ) να ανατρέξετε στο documentation της Oracle [[ http://​docs.oracle.com/​javase/​tutorial/​java/​nutsandbolts/​flow.html | εδώ]]. ​+Συμπληρωματικά, για ​τον έλεγχο ροής προγράμματος (//​for,​while,​do-while,​if,​switch//​ κλπ.μπορείτε  ​να ανατρέξετε στο documentation της Oracle [[ http://​docs.oracle.com/​javase/​tutorial/​java/​nutsandbolts/​flow.html | εδώ]]. ​
  
-===== if - else if - else statement =====+  * [[java:​control_flow_statements | Εντολές ελέγχου ροής προγράμματος ]] 
 +  * [[java:​loop_statements | Εντολές επανάληψης ]] 
 +  * [[java:​break_loop_statements | Εντολές τερματισμού και ελέγχου ανακύκλωσης ]]
  
-Ανάλογά με την γλώσσα C. Δείτε το παρακάτω παράδειγμα. 
-<code java IfElseDemo.java>​ 
-class IfElseDemo { 
-    public static void main(String[] args) { 
  
-        int testscore = 76; +| Προηγούμενο: [[:java:operators | Τελεστές ​]] | [[:toc Περιεχόμενα ​]] | Επόμενο[[:​java:​control_flow_statements | Εντολές ελέγχου ροής προγράμματος ]] |
-        char grade; +
- +
-        if (testscore >= 90) { +
-            grade = '​A';​ +
-        } else if (testscore >= 80) { +
-            grade = '​B';​ +
-        } else if (testscore >= 70) { +
-            grade = '​C';​ +
-        } else if (testscore >= 60) { +
-            grade = '​D';​ +
-        } else { +
-            grade = '​F';​ +
-        } +
-        System.out.println("​Grade = " + grade); +
-    } +
-+
-</​code>​ +
- +
-===== Switch statement ===== +
- +
-Σε αναλογία με την γλώσσα C, η Java υποστηρίζει την εντολή switch. Η ιδιαιτερότητα της switch στην Java είναι ότι υποστηρίζει ακεραίους,​ enumerated types ή αλφαριθμητικά. Δείτε τα παρακάτω παραδείγματα με χρήση ακεραίων και αλφαριμθητικών. +
- +
-<code java SwitchDemo.java>​ +
-public class SwitchDemo { +
-    public static void main(String[] args) { +
- +
-        int month = 8; +
-        String monthString;​ +
-        switch (month) { +
-            case 1 ​monthString = "​January";​ +
-                     ​break;​ +
-            case 2:  monthString = "​February";​ +
-                     ​break;​ +
-            case 3:  monthString = "​March";​ +
-                     ​break;​ +
-            case 4:  monthString = "​April";​ +
-                     ​break;​ +
-            case 5:  monthString = "​May";​ +
-                     ​break;​ +
-            case 6:  monthString = "​June";​ +
-                     ​break;​ +
-            case 7:  monthString = "​July";​ +
-                     ​break;​ +
-            case 8:  monthString = "​August";​ +
-                     ​break;​ +
-            case 9:  monthString = "​September";​ +
-                     ​break;​ +
-            case 10: monthString = "​October";​ +
-                     ​break;​ +
-            case 11: monthString = "​November";​ +
-                     ​break;​ +
-            case 12: monthString = "​December";​ +
-                     ​break;​ +
-            default: monthString = "​Invalid month";​ +
-                     ​break;​ +
-        } +
-        System.out.println(monthString);​ +
-    } +
-+
-</​code>​ +
- +
-<code java StringSwitchDemo.java>​ +
-public class StringSwitchDemo { +
- +
-    public static int getMonthNumber(String month) { +
- +
-        int monthNumber = 0; +
- +
-        if (month == null) { +
-            return monthNumber;​ +
-        } +
- +
-        switch (month.toLowerCase()) { +
-            case "​january":​ +
-                monthNumber = 1; +
-                break; +
-            case "​february":​ +
-                monthNumber = 2; +
-                break; +
-            case "​march":​ +
-                monthNumber = 3; +
-                break; +
-            case "​april":​ +
-                monthNumber = 4; +
-                break; +
-            case "​may":​ +
-                monthNumber = 5; +
-                break; +
-            case "​june":​ +
-                monthNumber = 6; +
-                break; +
-            case "​july":​ +
-                monthNumber = 7; +
-                break; +
-            case "​august":​ +
-                monthNumber = 8; +
-                break; +
-            case "​september":​ +
-                monthNumber = 9; +
-                break; +
-            case "​october":​ +
-                monthNumber = 10; +
-                break; +
-            case "​november":​ +
-                monthNumber = 11; +
-                break; +
-            case "​december":​ +
-                monthNumber = 12; +
-                break; +
-            default:  +
-                monthNumber = 0; +
-                break; +
-        } +
- +
-        return monthNumber;​ +
-    } +
- +
-    public static void main(String[] args) { +
- +
-        String month = "​August";​ +
- +
-        int returnedMonthNumber = +
-            StringSwitchDemo.getMonthNumber(month);​ +
- +
-        if (returnedMonthNumber == 0) { +
-            System.out.println("​Invalid month"​);​ +
-        } else { +
-            System.out.println(returnedMonthNumber);​ +
-        } +
-    } +
-+
-</​code>​ +
- +
-===== While και do-while statements ===== +
- +
- +
-<code java WhileDemo.java>​ +
-class WhileDemo { +
-    public static void main(String[] args){ +
-        int count = 1; +
-        while (count < 11) { +
-            System.out.println("​Count is" + count); +
-            count++; +
-        } +
-    } +
-+
-</​code>​ +
- +
-<​code ​java DoWhileDemo.java>​ +
-class DoWhileDemo { +
-    public static void main(String[] args){ +
-        int count = 1; +
-        do { +
-            System.out.println("​Count is" + count); +
-            count++; +
-        } while (count < 11); +
-    } +
-+
-</​code>​ +
- +
- +
-===== for statement ===== +
- +
-Η εντολή ''​for''​ συντάσσεται όπως και ​στην γλώσσα προγραμματισμού C. Ενδιαφέρον έχει μία διαφοροποιημένη έκδοση της ''​for''​ που υποστηρίζει η java και παρουσιάζουμε εδώ με σκοπό την ανακύκλωση σε όλα τα μέλη ενός πίνακα ή ενός [[http://​docs.oracle.com/​javase/​tutorial/​collections/​index.html ​|Collection]] (όπως θα δούμε αργότερα). Δείτε το παρακάτω παράδειγμα. +
- +
-<code java EnhancedForDemo.java>​ +
-class EnhancedForDemo { +
-    public static void main(String[] args){ +
-         int[] numbers =  +
-             ​{1,​2,​3,​4,​5,​6,​7,​8,​9,​10};​ +
-         for (int item : numbers) { +
-             ​System.out.println("​Count is: " + item); +
-         } +
-    } +
-+
-</​code>​ +
- +
-===== Branching Statements ===== +
-==== break ==== +
- +
-Η εντoλή ''​break''​ έχει δύο ​μορφές την //labeled// και την //​unlabeled//​ μορφή. Η unlabeled μορφή ​είναι η μορφή που γνωρίζετε από την γλώσσα C. Ένα παράδειγμα δίνουμε παρακάτω. +
- +
-<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:​operators | Τελεστές ]] | [[:java: |  ​]] |+
  
java/control_flow.txt · Last modified: 2017/02/10 15:39 by gthanos