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
java:control_flow [2015/07/07 17:57]
gthanos [Έλεγχος ροής προγράμματος]
java:control_flow [2017/02/10 15:39] (current)
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:​class | Η κλάση ​]] |+
  
java/control_flow.1436291824.txt.gz · Last modified: 2016/02/26 11:15 (external edit)