Προς το περιεχόμενο

Παράδειγμα για να δείξω διαφορά μεταξύ for loop και while loop


PC_MAGAS

Προτεινόμενες αναρτήσεις

Στο https://www.tutorialspoint.com/difference-between-for-and-while-loop δείχνει μια διαφορά μεταξύ for loop και while loop

Όμως προσπαθώ να σκαρφιστώ ένα παράδειγμα που αναναδυκνύει την διαφορά και να δείχνει ότι και τα 2 έχουν μια χρησιμότητα.

Όμως το μυαλό μου έχει βγάλει καπνούς. Έχετες ιδέα πως μπορώ να αναδείξω την διαφορά μςεταξύ for loop και while loop.

 

Δηλαδή ψάχνω ένα κομμάτι κώδικα που δεν μπορεί να λυθεί με for loop αλλά μόνο με while loop. H γλώσσα είναι η PHP.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

For loop

 It is used only when the number of iterations is known beforehand.

While condition

It is used only when the number of iterations isn’t known.

 

Το while (condition is true) νομίζω πως δεν μπορείς να το πετύχεις με τη for loop.

Για παράδειγμα, το 

while(!feof($fp)) {...}

νομίζω πως δεν μπορεί να αντικατασταθεί με τη for loop.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)
44 λεπτά πριν, MastroGiannis είπε

Το while (condition is true) νομίζω πως δεν μπορείς να το πετύχεις με τη for loop.

Για παράδειγμα, το 

while(!feof($fp)) {...}

νομίζω πως δεν μπορεί να αντικατασταθεί με τη for loop.

Αν και δεν είναι ιδιαίτερο "σωστό", θα μπορούσε ίσως να γίνει κάπως έτσι:

for ($i = 0; $i <= 1; $i++) {
	...
	$i = (int)feof($fp);
}

 

Επεξ/σία από macabre_sunsets
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

13 ώρες πριν, PC_MAGAS είπε

Στο https://www.tutorialspoint.com/difference-between-for-and-while-loop δείχνει μια διαφορά μεταξύ for loop και while loop

Όμως προσπαθώ να σκαρφιστώ ένα παράδειγμα που αναναδυκνύει την διαφορά και να δείχνει ότι και τα 2 έχουν μια χρησιμότητα.

Όμως το μυαλό μου έχει βγάλει καπνούς. Έχετες ιδέα πως μπορώ να αναδείξω την διαφορά μςεταξύ for loop και while loop.

 

Δηλαδή ψάχνω ένα κομμάτι κώδικα που δεν μπορεί να λυθεί με for loop αλλά μόνο με while loop. H γλώσσα είναι η PHP.

Νομίζω δεν υπάρχει περίπτωση που δεν μπορούν να ενναλλαχθούν οπότε μάλλον άδικα ψάχνεις.

To while είναι πιο γενικό (μία παράμετρος) οπότε πιο ευέλικτο (προσωπική γνώμη) ενώ το for τρεις παραμέτρους στην τυπική χρήση. 

Είναι θέμα έκφρασης μόνο γιαυτόν που γράφει και αναγνωσιμότητας γιαυτόν που διαβάζει

πχ στο παρακάτω το while είναι πιο "σωστό"

while ($input != "exit")
{}

for(;$input!="exit";) 

Το for επίσης έχει σε πολλές γλώσσες έχει επεκταθεί συντακτικά για να καταναλώνει iterables px

for i in iterable
for (i of iterable)

η τα διάφορα foreach

foreach (iterable_expression as $key => $value)

μπορούν να γραφούν και με while αλλά

 

 

 

  • Like 2
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)
16 ώρες πριν, PC_MAGAS είπε

Στο https://www.tutorialspoint.com/difference-between-for-and-while-loop δείχνει μια διαφορά μεταξύ for loop και while loop

Όμως προσπαθώ να σκαρφιστώ ένα παράδειγμα που αναναδυκνύει την διαφορά και να δείχνει ότι και τα 2 έχουν μια χρησιμότητα.

Όμως το μυαλό μου έχει βγάλει καπνούς. Έχετες ιδέα πως μπορώ να αναδείξω την διαφορά μςεταξύ for loop και while loop.

 

Δηλαδή ψάχνω ένα κομμάτι κώδικα που δεν μπορεί να λυθεί με for loop αλλά μόνο με while loop. H γλώσσα είναι η PHP.

Δεν νομίζω να βρεις κάποια περίπτωση ,ίσως σε κάποια συγκεκριμένη γλώσσα προγραμματισμού να υπάρχει κάποιο παράδειγμα (πχ. να μην μπορείς να κάνεις for(;;){}). Αλλά αυτό θα ήταν περισσότερο gimmick.

Επεξ/σία από pcmasterrace123
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

18 ώρες πριν, PC_MAGAS είπε

Στο https://www.tutorialspoint.com/difference-between-for-and-while-loop δείχνει μια διαφορά μεταξύ for loop και while loop

Όμως προσπαθώ να σκαρφιστώ ένα παράδειγμα που αναναδυκνύει την διαφορά και να δείχνει ότι και τα 2 έχουν μια χρησιμότητα.

Όμως το μυαλό μου έχει βγάλει καπνούς. Έχετες ιδέα πως μπορώ να αναδείξω την διαφορά μςεταξύ for loop και while loop.

 

Δηλαδή ψάχνω ένα κομμάτι κώδικα που δεν μπορεί να λυθεί με for loop αλλά μόνο με while loop. H γλώσσα είναι η PHP.

Η χρησιμοτητα δεν πηγαζει απο καποια αμοιβαιως αποκλειστικη λειτουργικοτητα οπως ειπαν, αλλα απο την εκαστοτε μειωση του γνωστικου φορτιου (cognitive load) του προγραμματιστη και του αναγνωστη

πχ γινεται

while iterable_consumed == False

    do stuff

    if end_reached

        iterable consumed = True

αλλα αναμφιβολα το 

for item in iterable:

    do stuff

 

ειναι καλυτερο

 

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

20 ώρες πριν, PC_MAGAS είπε

Στο https://www.tutorialspoint.com/difference-between-for-and-while-loop δείχνει μια διαφορά μεταξύ for loop και while loop

Όμως προσπαθώ να σκαρφιστώ ένα παράδειγμα που αναναδυκνύει την διαφορά και να δείχνει ότι και τα 2 έχουν μια χρησιμότητα.

Όμως το μυαλό μου έχει βγάλει καπνούς. Έχετες ιδέα πως μπορώ να αναδείξω την διαφορά μςεταξύ for loop και while loop.

 

Δηλαδή ψάχνω ένα κομμάτι κώδικα που δεν μπορεί να λυθεί με for loop αλλά μόνο με while loop. H γλώσσα είναι η PHP.

Ίσως η μόνη περίπτωση που μπορείς να βρεις διαφορά και κάτι να μην γίνεται με for ενώ να γίνεται με while, είναι η χρήση το `do while`. Το `while do` είναι ακριβώς ίδιο με το for. Θα μπορούσε κανείς να προσομοιώσει το `do while` με κάποιες γραμμές πριν το for, αλλά εάν παίξουμε αυτό το παιχνίδι σκέψης, νομίζω πως το for δεν μπορεί να κάνει αυτό που κάνει το `do while`. 

Συνεχίζοντας όμως την ερώτηση σου, ξέρει κανείς ποιο ήταν πρώτο και γιατί ήρθε το δεύτερο; Δηλαδή, ήταν πρώτο το while και μετά ήρθε το for; Ή το αντίστροφο; Και γιατί ήρθε το δεύτερο; Τι ανάγκη κάλυψε τότε; 

Και μία ακόμα ερώτηση:

Στο condition evaluation part του for, μπορεί να γίνει κλήση συνάρτησης; Φαντάζομαι ένα σενάριο όπως:

while(check_if_we_continue()){
  .....
}

Θα μπορούσε αυτό να γραφτεί με for σαν: 

for(;check_if_we_continue();){
}

?

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)

Τελικά, το έκανα ποιο απλό, έκανα 2 loops 1 με for και 1 με while και βλέπεις διαφορές στο output.

$i=0;

while($i < 10){ echo $i; $i++;}
while($i < 20){ echo $i; $i++;}

 

Και με for

for($i=0;$i<10;$i++){echo $i;}
for($i=0;$i<20;$i++){echo $i;}
                      

 

Εκτυπώνω τα output και παίζω spot the difference στην τάξη. Δηλαδή ήθελα να δείξω ότι το for συμπεριφέρετε ελαφρώς διαφορετικά από το while.

Επεξ/σία από PC_MAGAS
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...