asxetoula Δημοσ. 14 Φεβρουαρίου 2007 Δημοσ. 14 Φεβρουαρίου 2007 Καλημέρα! Προσπαθώ να γράψω ένα προγραμματάκι σε C++ και έχω την εξής απορία: Χρειάζεται και η εντολή break σε κάθε case? Αρκεί η return έτσι δεν είναι; bool sinartisi_3 (int metavliti) { switch (metavliti) { case 1 : return sinartisi_1 (metavliti); break; // Χρειάζεται; case 2 : return sinartisi_2 (metavliti); default; return false; } } Και επίσης τα πρωτότυπα των συναρτήσεων είναι: bool sunartisi_1 (int i); bool sunartisi_2 (int j); Ευχαριστώ πολύ : )
asxetoula Δημοσ. 14 Φεβρουαρίου 2007 Μέλος Δημοσ. 14 Φεβρουαρίου 2007 Kalimera,den xreiazete Thank you:mrgreen:
kamenopixel Δημοσ. 14 Φεβρουαρίου 2007 Δημοσ. 14 Φεβρουαρίου 2007 edit: δεν χρειαζεται.Δεν ειδα τα return.
nikosdimos Δημοσ. 14 Φεβρουαρίου 2007 Δημοσ. 14 Φεβρουαρίου 2007 Το "break;" χρειάζεται, για τον λόγο που είπε και ο kamenopixel και αν δείς εδώ έχει μια πιο εκτενέστερη εξήγηση για το πως συντάσεται η switch. Πάντως το Google είναι φίλος μας.
kamenopixel Δημοσ. 14 Φεβρουαρίου 2007 Δημοσ. 14 Φεβρουαρίου 2007 Το "break;" χρειάζεται, για τον λόγο που είπε και ο kamenopixel και αν δείς εδώ έχει μια πιο εκτενέστερη εξήγηση για το πως συντάσεται η switch. Πάντως το Google είναι φίλος μας. Γενικα ναι,χρειαζονται.Εκατσα και το ξαναετρεξα οπως το ειχε βαλει η asxetoula και δεν υπηρχε προβλημα.Λογω των return μαλλον τα οποια αποτελουν "εμμεσα" break.
chiossif Δημοσ. 14 Φεβρουαρίου 2007 Δημοσ. 14 Φεβρουαρίου 2007 Εξαρτάται από την χρήση της. Διαβάστε με προσοχή εδώ το παράδειγμα και ιδιαίτερα αυτό: "If betty is 1, then two lines are printed: betty=1 and betty=2. If betty is 2, then only one line is printed: betty=2. If betty=3, then only one line is printed: betty=3. If betty does not equal 1, 2, or 3, then "Not sure." is printed."
asxetoula Δημοσ. 14 Φεβρουαρίου 2007 Μέλος Δημοσ. 14 Φεβρουαρίου 2007 Η return δεν επαναφέρει τον έλεγχο στο σημείο όπου έγινε η κλήση της συνάρτησης στην οποία βρίσκεται; Ότι και να ακολουθεί μετά τη return, δε θα εκτελεστεί, άρα δεν έχει νόημα να προσθέσω τις break... Γενικότερα ξέρω πως επιβάλλεται κάθε case να τελειώνει με μία break για να μην εξεταστούν οι υπόλοιπες περιπτώσεις, απλά στο συγκεκριμένο παράδειγμα (βλ: πρώτο post) μου φαίνεται περιττή(όχι όμως λάθος). Μόλις τελείωσα το πρόγραμμα και λειτουργεί είτε με είτε χωρίς τις break στο συγκεκριμένο σημείο. Κάτι ακόμα, μήπως ξέρετε τι σημαίνουν τα παρακάτω warnings: >g++ -o ex main.cpp // main.cpp to programma poy elega pio panw ld: warning: symbol `clog' has differing types: (file /home/appl/gcc/lib/gcc-lib/sparc-sun-solaris2.8/2.95.2/libstdc++.a(stdstreams.o) type=OBJT; file /usr/lib/libm.so type=FUNC); /home/appl/gcc/lib/gcc-lib/sparc-sun-solaris2.8/2.95.2/libstdc++.a(stdstreams.o) definition taken ld: warning: symbol `clog' has differing types: (file /home/appl/gcc/lib/gcc-lib/sparc-sun-solaris2.8/2.95.2/libstdc++.a(stdstreams.o) type=OBJT; file /usr/lib/libm.so type=FUNC);
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.