menu

Εργασία με σημαίες στο JavaScript

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

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

Αρχικά ας προσπαθήσουμε να εκτυπώσουμε '+++'. Για αυτό θα διατρέξουμε όλα τα στοιχεία του πίνακά μας και με ένα if θα ρωτάμε - είναι ίσο το τρέχον στοιχείο με την τιμή 3. Αν είναι ίσο - θα εκτυπώσουμε '+++':

let arr = [1, 2, 3, 4, 5]; for (let elem of arr) { if (elem == 3) { console.log('+++'); } }

Αλλά η λύση μας δεν είναι πολύ καλή: γιατί αν στον πίνακα δεν υπάρχει μία τιμή 3, αλλά πολλές, τότε το '+++' θα εκτυπωθεί πολλές φορές. Ας διορθώσουμε τον πίνακά μας (ας κάνουμε δύο στοιχεία με τιμή 3) και ας βεβαιωθούμε σε αυτό:

let arr = [1, 2, 3, 4, 3, 5]; for (let elem of arr) { if (elem == 3) { console.log('+++'); // θα εκτυπώσει πολλές φορές } }

Ας διορθώσουμε το πρόβλημα: θα τερματίσουμε τον βρόγχο με τη βοήθεια break, αν το στοιχείο έχει ήδη βρεθεί:

let arr = [1, 2, 3, 4, 3, 5]; for (let elem of arr) { if (elem == 3) { console.log('+++'); break; // τερματίζουμε τον βρόγχο } }

Ας προσπαθήσουμε τώρα να κάνουμε έτσι ώστε, αν στον πίνακα δεν υπάρχουν καθόλου στοιχεία με τιμή 3, να εκτυπώνεται '---'. Μια διαδεδομένη πλάνη θα ήταν να προσθέσουμε else στο if μας - σε αυτήν την περίπτωση το '---' θα εκτυπώνεται για όλα τα στοιχεία που δεν είναι 3:

let arr = [1, 2, 3, 4, 5]; for (let elem of arr) { if (elem == 3) { console.log('+++'); // θα εκτυπώσει στο στοιχείο 3 } else { console.log('---'); // θα εκτυπώσει στα στοιχεία 1, 2, 4, 5 } }

Επομένως, η ιδέα να προσθέσουμε else - είναι κακή ιδέα, δεν λειτουργεί. Για την επίλυση προβλημάτων αυτού του τύπου (τέτοια προβλήματα συναντώνται αρκετά συχνά) χρησιμοποιούνται οι λεγόμενες σημαίες.

Όπως ήδη αναφέρθηκε παραπάνω, μια σημαία είναι μια τέτοια μεταβλητή, που μπορεί να πάρει δύο τιμές: true ή false.

Λοιπόν, ας φτιάξουμε μια μεταβλητή flag με την ακόλουθη σημασία: αν είναι ίση με true, τότε στον πίνακα υπάρχει στοιχείο 3, ενώ αν είναι false, τότε δεν υπάρχει τέτοιο στοιχείο.

Αρχικά θα ορίσουμε τη μεταβλητή flag στην τιμή false - δηλαδή θα θεωρήσουμε, ότι το στοιχείο 3 δεν υπάρχει στον πίνακα:

let arr = [1, 2, 3, 4, 5]; let flag = false; // θεωρούμε ότι το στοιχείο 3 δεν υπάρχει στον πίνακα

Στη συνέχεια, θα ξεκινήσουμε έναν βρόγχο με if όπως το κάναμε προηγουμένως. Αν ο βρόγχος ανακαλύψει ότι στον πίνακα υπάρχει στοιχείο 3 - τότε θα θέσουμε τη μεταβλητή flag στην τιμή true και θα βγούμε από τον βρόγχο με τη βοήθεια του break:

let arr = [1, 2, 3, 4, 5]; let flag = false; // θεωρούμε ότι το στοιχείο 3 δεν υπάρχει στον πίνακα for (let elem of arr) { if (elem == 3) { flag = true; // το στοιχείο υπάρχει - θα επαναπροσδιορίσουμε τη μεταβλητή flag break; // βγαίνουμε από τον βρόγχο } }

Την απάντηση στο ερώτημα, αν υπάρχει 3 στον πίνακα ή όχι, μπορούμε να τη δώσουμε μόνο μετά τον βρόγχο. Και αυτή η απάντηση την έχουμε ήδη: μετά τον βρόγχο η μεταβλητή flag μπορεί να έχει μείνει false ή να έχει αλλάξει την τιμή της σε true, αν ο βρόγχος ανίχνευσε στον πίνακα 3:

let arr = [1, 2, 3, 4, 5]; let flag = false; for (let elem of arr) { if (elem == 3) { flag = true; break; } } // εδώ η μεταβλητή flag είναι ίση με true ή false

Τώρα μετά τον βρόγχο μπορούμε να κάνουμε ένα if, που θα κοιτάξει τη μεταβλητή flag και θα εκτυπώσει στην οθόνη '+++' ή '---':

let arr = [1, 2, 3, 4, 5]; let flag = false; for (let elem of arr) { if (elem == 3) { flag = true; break; } } if (flag === true) { console.log('+++'); } else { console.log('---'); }

Δίνεται πίνακας:

let arr = ['a', 'b', 'c', 'd', 'e'];

Ελέγξτε ότι σε αυτόν τον πίνακα υπάρχει στοιχείο 'c'. Αν υπάρχει - εκτυπώστε '+++', και αν όχι - εκτυπώστε '---'.

Γράψτε κώδικα που θα ελέγχει έναν αριθμό αν είναι πρώτος ή όχι. Ένας πρώτος αριθμός διαιρείται μόνο με το ένα και με τον εαυτό του, και δεν διαιρείται με άλλους αριθμούς.

Ελληνικά
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Χρησιμοποιούμε cookie για τη λειτουργία του ιστότοπου, την ανάλυση και την εξατομίκευση. Η επεξεργασία των δεδομένων γίνεται σύμφωνα με την Πολιτική Απορρήτου.
αποδοχή όλων ρύθμιση απόρριψη