Άρθρο #5: Δομές επανάληψης - Δομή επιλογής
C++ Programmer's Corner :: Προγραμματισμός :: C :: Άρθρα
Σελίδα 1 από 1
Άρθρο #5: Δομές επανάληψης - Δομή επιλογής
Όπως φάνηκε στο προηγούμενο άρθρο, ο έλεγχος της ροής ενός προγράμματος είναι ίσως απ`τα πιο σημαντικά στοιχεία του προγραμματισμού. Αλλά όπως μπορούμε να επιλέξουμε πιο κομμάτι κώδικα θα εκτελεστεί, μπορούμε να επιλέξουμε και πόσες φορές θα εκτελεστεί. Αυτό γίνεται εφικτό με τις λεγόμενες δομές επανάληψης, και η C εμπεριέχει τις 3 βασικότερες, οι οποίες είναι:
Επανάληψη όσο η συνθήκη είναι αληθής.
Ίδιο με το παραπάνω, αλλά ο κώδικας εκτελείται τουλάχιστον μια φορά.
Διαφορετικό από τα παραπάνω, αυτή η δομή συνήθως χρησιμοποιείται σαν "ΓΙΑ χ ΑΠΟ κάπου ΜΕΧΡΙ κάπου ΜΕ_ΒΗΜΑ κάτι", αλλά είναι πολύ ευέλικτη. To "initialization" είναι η ανάθεση αρχικής τιμής, το "condition" είναι η συνθήκη επανάληψης και το "operation" είναι κάποια πράξη, συνήθως το "βήμα".
Παρακάτω δίνονται 3 παραδείγματα, τα οποία είναι το ίδιο πρόβλημα( το άθροισμα 1+2+3+...+n ) λυμένο με τους 3 διαφορετικούς τρόπους:
Τέλος, υπάρχει μια μορφή επιλογής η οποία μας επιτρέπει να συγκρίνουμε μια μεταβλητή με πολλές σταθερές, και να εκτελούμε τον ανάλογο κώδικα, χωρίς μακροσκελείς "if". Αυτό γίνεται με τα "switch cases". Παρακάτω δίνεται η γενίκευση της "switch" και εξηγείται η ισοδυναμία της με την "if".
Κλείνοντας, μη ξεχνάτε να πειραματίζεστε με το κώδικα και να προσπαθείτε να φτιάξετε να δικά σας προγράμματα. Μερικά παραδείγματα σαν τα δικά μου δεν είναι αρκετά για να μάθετε τη γλώσσα, πρέπει να προσπαθήσετε!
Επανάληψη όσο η συνθήκη είναι αληθής.
- Κώδικας:
while (this_is_true)
{
/* Keep executing me */
}
Ίδιο με το παραπάνω, αλλά ο κώδικας εκτελείται τουλάχιστον μια φορά.
- Κώδικας:
do
{
/* Keep executing me */
}while (this_is_true);
Διαφορετικό από τα παραπάνω, αυτή η δομή συνήθως χρησιμοποιείται σαν "ΓΙΑ χ ΑΠΟ κάπου ΜΕΧΡΙ κάπου ΜΕ_ΒΗΜΑ κάτι", αλλά είναι πολύ ευέλικτη. To "initialization" είναι η ανάθεση αρχικής τιμής, το "condition" είναι η συνθήκη επανάληψης και το "operation" είναι κάποια πράξη, συνήθως το "βήμα".
- Κώδικας:
for (initialization ; condition ; operation)
{
/* Keep executing me */
}
Παρακάτω δίνονται 3 παραδείγματα, τα οποία είναι το ίδιο πρόβλημα( το άθροισμα 1+2+3+...+n ) λυμένο με τους 3 διαφορετικούς τρόπους:
- Κώδικας:
#include <stdio.h>
int main(void)
{
int N, i;
int sum;
printf("Give a positive integer: ");
scanf("%d", &N);
i = 1;
sum = 0;
while (i <= N)
{
sum += i;
++i;
}
printf("Adding all integers from 1 to %d gives %d.\n", N, sum);
/* Μήπως αρχίζει να βγάζει νόημα αυτή η γραμμή? Μην απελπίζεστε, θα εξηγηθεί σε επόμενα άρθρα */
while (getchar() != '\n');
getchar();
return 0;
}
- Κώδικας:
#include <stdio.h>
int main(void)
{
int N, i;
int sum;
printf("Give a positive integer: ");
scanf("%d", &N);
i = 1;
sum = 0;
do
{
sum += i;
++i;
}while (i <= N);
printf("Adding all integers from 1 to %d gives %d.\n", N, sum);
while (getchar() != '\n');
getchar();
return 0;
}
- Κώδικας:
#include <stdio.h>
int main(void)
{
int N, i;
int sum;
printf("Give a positive integer: ");
scanf("%d", &N);
sum = 0;
for (i = 1; i <= N; i++)
{
sum += i;
}
printf("Adding all integers from 1 to %d gives %d.\n", N, sum);
while (getchar() != '\n');
getchar();
return 0;
}
Τέλος, υπάρχει μια μορφή επιλογής η οποία μας επιτρέπει να συγκρίνουμε μια μεταβλητή με πολλές σταθερές, και να εκτελούμε τον ανάλογο κώδικα, χωρίς μακροσκελείς "if". Αυτό γίνεται με τα "switch cases". Παρακάτω δίνεται η γενίκευση της "switch" και εξηγείται η ισοδυναμία της με την "if".
- Κώδικας:
switch (variable)
{
case value1: /* if (variable == value1) */
/* Τρέχε εμένα */
break;
case value2: /* else if (variable == value2) */
/* Τρέχε εμένα! */
break;
/* Όσα cases θέλετε βάζετε */
default: /* else */
/* Εκτέλεσε εμένα. */
}
Κλείνοντας, μη ξεχνάτε να πειραματίζεστε με το κώδικα και να προσπαθείτε να φτιάξετε να δικά σας προγράμματα. Μερικά παραδείγματα σαν τα δικά μου δεν είναι αρκετά για να μάθετε τη γλώσσα, πρέπει να προσπαθήσετε!
Παρόμοια θέματα
» Άρθρο #10: Δομή/"struct" - typedef
» Άρθρο #9: Συμβολοσειρές
» Άρθρο #1: Γνωριμία με τη C
» Άρθρο #8: Δείκτες
» Άρθρο #6: Συναρτήσεις
» Άρθρο #9: Συμβολοσειρές
» Άρθρο #1: Γνωριμία με τη C
» Άρθρο #8: Δείκτες
» Άρθρο #6: Συναρτήσεις
C++ Programmer's Corner :: Προγραμματισμός :: C :: Άρθρα
Σελίδα 1 από 1
Δικαιώματα σας στην κατηγορία αυτή
Δεν μπορείτε να απαντήσετε στα Θέματα αυτής της Δ.Συζήτησης
|
|