superboy Δημοσ. 19 Μαΐου 2011 Δημοσ. 19 Μαΐου 2011 Μία φίλη μου ρωτάει το εξής: Κώδικας: do { if(X){} } while(X); ---------------------- Κώδικας: while(X){} Ποία είναι η διαφορά ; Έχω κολλήσει plx halp
dimitris_pa Δημοσ. 19 Μαΐου 2011 Δημοσ. 19 Μαΐου 2011 Μία φίλη μου ρωτάει το εξής: Κώδικας: do { if(X){} } while(X); ---------------------- Κώδικας: while(X){} Ποία είναι η διαφορά ; Έχω κολλήσει plx halp κανε //αυτό που υπάρχει στις παρενθέσεις { αμα (x){} //αν είναι "αληθείς" το (x) } ενώ (x); //καθώς το (x) είναι τάδε ----------------- ενώ (x) {} //καθώς το (x) είναι τάδε το δεύτερο δεν νομίζω να λειτουργεί έτσι μόνο του......
parsifal Δημοσ. 19 Μαΐου 2011 Δημοσ. 19 Μαΐου 2011 Ποία είναι η διαφορά ; Έχω κολλήσει plx halp Η τυπική απάντηση που δίνεται σε αυτές τις περιπτώσεις είναι ότι με τη do...while έχεις σίγουρα τουλάχιστον μία επανάληψη (επειδή η συνθήκη τερματισμού του βρόχου είναι στο τέλος και όχι στην αρχή), αλλά εδώ έχει προστεθεί και μία if που κάνει τις δύο μορφές ισοδύναμες. Ισοδύναμες όμως μόνο όσον αφορά την εκτέλεση ή όχι των περιεχομένων του innermost block. Γιατί κατά τ' άλλα, η πρώτη μορφή είναι μη αποδοτική: μετά την 1η επανάληψη του βρόχου όλες οι εκτελέσεις της if είναι παντελώς περιττές αφού για να έχει φτάσει η ροή εκτέλεσης στην if σημαίνει πως η συνθήκη X αποτιμήθηκε αμέσως πριν (στο τέλος της προηγούμενης επανάληψης) ως αληθής.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.