Jump to content

Recommended Posts

Posted

Δεν έχει πρόλογο σε αυτό το τοπικ :P,ας αρχίσουμε.

 

Οι παραπάνω,for,while,do στην java ονομάζονται βρόχοι.

 

Chapters:

[*]Σχετικά με το for

[*]Σχετικά με το while

[*]Σχετικά με το do

 


Chapter I:

 

Σχετικά με το for:

 

Το for επαναλαμβάνει μια πρόταση για ένα συγκεκριμένο αριθμό φορών μέχρι να ικανοποιηθεί μια 'συνθήκη'.Αν και ο βρόχος for συχνά χρησιμοποιούνται για απλές επαναλήψεις,κατά τις οποίες μια πρόταση επαναλαμβάνεται ένα ορισμένο αριθμό φορών,γενικά μπορει να χρησιμοποιηθεί για με την εξής περίπου σύνταξη:

 

for (initialization; test; increment){
statement;
}

 

Επειδή είμαι σίγουρος,ότι δεν καταλάβατε το χριστό σας..θα σας εξηγήσω τον παραπάνω κώδικα αναλυτικά.Λοιπόν,

 

[*]initialization είναι μια έκφραση(θα μπορούσε να μπει οτιδήποτε εκει,μην μπερδεύεστε) που 'αρχικοποιεί' την αρχη του βρόχου(for) αυτή η έκφραση μπορεί να τον δηλώσει και να τον αρχικοποιήσει,για παράδειγμα float = 0.1.Οι οποιεδήποτες μεταβλητές που δηλώνεται σε αυτό το μέρος του βρόχου(for) είναι 'τοπικές' για τον βρόχο.Σταματούν να υπάρχουνε μετά την ολοκλήρωση της εκτελεσης του βρόχου.

 

[*]test είναι ο έλεγχος που γίνετε μετά απο κάθε πέρασμα απο τον βρόχο(for).Ο έλεγχος πρέπει να είναι μια λογική έκφραση  ή μια συνάρτηση που επιστρέφει μια τιμή Boolean,π.χ i < 10.Αν ο έλεγχος είναι true,τότε ο βρόχος εκτελείται..Όταν γίνει false όπως καταλαβατε θα σταμάταει όλοι η εκτέλεση του βρόχου(for).

 

[*]increment είναι μια έκφραση,κυρίως..αλλά μπορεί να είναι και μια κλήση μεθόδου.Συνήθως χρησιμοποιείται για να αλλάξη την τιμή του βρόχου ώστε να φέρει τον βρόχο σε μια κατάσταση κοντά στο false ώστε να τελειώσει.Η προσαύξηση της τιμής γίνεται μετά από κάθε πέρασμα μέσα απο τον βρόχο.

 

[*]statement είναι πρόταση εκτελείται κάθε φορά που επαναλαμβάνεται ο βρόχος.Όπως και με το if μπορείτε να περιλάβετε μια πρόταση.

 

Κάποιο συνηθισμένο λάθος που γίνεται,ακόμα και από έμπειρους είναι το παρακάτω..

for ( i = 0; i < 10; i++);
x = x * i;

Στο παραπάνω παράδειγμα το ερωτηματικό τελειώνει τον βρόχο χωρίς να εκτελέση το x = x * i; σαν να είναι μέρος του βρόχου.Άρα όπως καταλαβαίνεται η γραμμή του κώδικα x = x * i; θα εκτελεστεί μόνο μια φορά επειδή είναι έξω απο τον βρόχο for.

 


Chapter II:

 

Σχετικά με τον while:

 

Όπως και το for,το while είναι και αυτός ένας βρόχος.Χρησιμοποιείται για να επαναλαμβάνει μια πρόταση για όσο χρόνο αυτή είναι true.

Δεν είναι δύσκολος,ορίστε ένα παράδειγμα για το while:

while ( i < 10){
x = x*i;
}

 

Αν και είναι εύκολος θα σας τον εξηγήσω,αν αυτή η έκφραση επιστρέψει true τότε ο βρόχος while εκτελεί το εσωτερικό του και μετά ελεγχει ξανά την συνθήκη.Η διαδικασία επαναλαμβάνεται μέχρι η συνθήκη να γίνει false ώστε να σταματήσει η εκτέλει του βροχου while.Ο βρόχος while ελέγχει την συνθήκη πριν απο τον βρόχο,οπότε εάν η συνθήκη είναι false την πρώτη φορά που θα εκτελεστεί ο κώδικας τότε δεν εκτελείται ποτέ..

 


 

Chapter III:

 

Σχετικά με τον do:

 

Ο βρόχος do ειναι σαν τον βρόχο while με μια βασική διαφορά: την θέση στον βρόχο,όταν ελέγχεται η συνθήκη.Ένας βρόχος do εκτελεί το σώμα του βρόχου τουλάχιστον μια φορά πριν να ελέγξει την συνθήκη,οπότε αν η συνθήκη είναι false την πρώτη φορά που θα ελεγχθεί,το σώμα του βρόχου θα έχει εκτελεστεί ήδη μια φορά.

Πιστεύω να το καταλάβατε αν και δεν το είπα σε πολύ απλά ελληνικά,βασικά αμα καταλάβατε τον while τότε θα καταλάβεται και αυτόν.

 

Kαι ένας κώδιακας και με while & do:

 

int = 1;
do {
i *=2;
System.out.print(i + " ");
}
while ( i < 100000000);

 

Το σώμα του βρόχου εκτελείται μια φορά πριν η συνθήκη ελέγχου, i < 10000000 ,'αποτιμηθεί'.Μετά αν η συνθήκη βρεθεί true,ο βρόχος εκτελείται ξάνα,και ξανά και πάει λέγοντας.Προσοχή όμως,να ξέρετε οτι με το do το 'σωμα' βρόχου εκτελείται τουλάχιστον μια φορά.

 


 

Αυτά,ξέρω δεν ήτανε και τόσο αναλυτικός οδηγός όπως οι άλλοι,απλά σας έδωσα 2-3 παραδείγμα και οδηγίες ώστε να ξέρετε πως να τα χρησιμοποιείται.

cheers.

Posted

Δεν ξέρω αν ισχύει αυτό που λες για την C,μιας και δεν έχω ασχοληθεί πολύ..

ευχαριστώ.

Posted

Δεν ξέρω αν ισχύει αυτό που λες για την C,μιας και δεν έχω ασχοληθεί πολύ..

ευχαριστώ.

ισχυει , και στην c και  σε αρκετες αλλες . Μονο στην vb αλλαζει λιγο η συνταξη.

Επισης θα μπουρουσες να βαλεις για την αλλη χρηση του for. (for Object t : k)

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...