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

Κόλλησα στην C++


superboy

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

Δημοσ.

Μία φίλη μου ρωτάει το εξής:

 

 

Κώδικας:

do

{

if(X){}

} while(X);

----------------------

Κώδικας:

while(X){}

 

Ποία είναι η διαφορά ; Έχω κολλήσει plx halp

Δημοσ.

Μία φίλη μου ρωτάει το εξής:

 

 

Κώδικας:

do

{

if(X){}

} while(X);

----------------------

Κώδικας:

while(X){}

 

Ποία είναι η διαφορά ; Έχω κολλήσει plx halp

 

κανε //αυτό που υπάρχει στις παρενθέσεις

{

αμα (x){} //αν είναι "αληθείς" το (x)

}

ενώ (x); //καθώς το (x) είναι τάδε

-----------------

ενώ (x) {} //καθώς το (x) είναι τάδε

 

 

το δεύτερο δεν νομίζω να λειτουργεί έτσι μόνο του......

Δημοσ.

Ποία είναι η διαφορά ; Έχω κολλήσει plx halp

Η τυπική απάντηση που δίνεται σε αυτές τις περιπτώσεις είναι ότι με τη do...while έχεις σίγουρα τουλάχιστον μία επανάληψη (επειδή η συνθήκη τερματισμού του βρόχου είναι στο τέλος και όχι στην αρχή), αλλά εδώ έχει προστεθεί και μία if που κάνει τις δύο μορφές ισοδύναμες.

 

Ισοδύναμες όμως μόνο όσον αφορά την εκτέλεση ή όχι των περιεχομένων του innermost block. Γιατί κατά τ' άλλα, η πρώτη μορφή είναι μη αποδοτική: μετά την 1η επανάληψη του βρόχου όλες οι εκτελέσεις της if είναι παντελώς περιττές αφού για να έχει φτάσει η ροή εκτέλεσης στην if σημαίνει πως η συνθήκη X αποτιμήθηκε αμέσως πριν (στο τέλος της προηγούμενης επανάληψης) ως αληθής.

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...