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

απορια σε if στη c


renouko

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

Δημοσ.

καλησπερα θα ηθελα να ρωτησω το εξης

αν εχω σε ενα προγραμμα στη c

μεσα στην main την εντολη

if(end(i,j))

break;

οπου η end ειναι συναρτηση που παιρνει δυο ορισματα

και τα ελεγχει για να δει ποιο απο τα δυο ειναι μεγαλυτερο μικροτερο η ισο(μεσα στην συναρτηση γινεται και η εκτυπωση για το ποιο ειναι πιο μεγαλο κτλ).

θα ηθελα να ρωτησω τι ακριβως κανει η εντολη if(end(i,j)).

Δημοσ.

Για να δουλέψει η if πρέπει η end(i,j) να επιστρέφει boolean μεταβλητή, δηλαδή με τιμή true ή false.

 

Π.χ. αν η end ελέγχει αν το i είναι μεγαλύτερο από το j, θα επιστρέψει true αν το i είναι μεγαλύτερο από το j οπότε και θα εκτελεστεί η if,διαφορετικά θα επιστρέψει false οπότε και δε θα εκτελεστεί η if.

Δημοσ.

Προφανώς όλο αυτό είναι μέσα σε κάποιο loop που θα πρέπει να τερματίζεται αν κάποιο από τα δυο είναι μεγαλύτερο.

 

Ας πούμε για παράδειγμα ότι πρέπει το i να είναι μεγαλύτερο από το j για να τερματιστεί το loop.

 

Τότε πολύ απλά αυτό που κάνει η end είναι εκτος από την εκτύπωση μηνυμάτων, ή οτι άλλο κάνει παράλληλα μαζί με τους ελεγχους, επιστρέφει και το αποτέλεσμα του ποιο είναι μεγαλύτερο.

 

για παραδειγμα:

 

>
int end(int i, int j){
   if(i>j){
       //Διαφορα προς εκτέλεση.
   }else if(i==j){
       //Διαφορα προς εκτέλεση.
   }else{
       //Διαφορα προς εκτέλεση.
   }
   return i>j;
}

 

Έτσι αν ισχύει η συνθήκη που θέλουμε (στο παράδειγμα μας το i να είναι μεγαλύτερο του j) κατά την εκτέλεση του προγράμματος θα μπει στο if statement και θα εκτελεστεί το break ώστε να τερματιστεί το loop.

Δημοσ.

Η συνάρτηση end(...) τι επιστρέφει σε κάθε περίπτωση; Αν αυτό που επιστρέψει είναι 0, τότε δεν θα εκτελεστεί η if. Αλλιώς, αν επιστρέψει θετική (ή αρνητική τιμή) τιμή, τότε η if θα εκτελεστεί.

 

Στο δικό σου παράδειγμα, αν η end() επιστρέψει κάποια τιμή διαφορετική του 0 θα εκτελεστεί μετά η εντολή break;.

 

 

 

Για να δουλέψει η if πρέπει η end(i,j) να επιστρέφει boolean μεταβλητή, δηλαδή με τιμή true ή false.

 

 

Η C δεν έχει boolean τύπο. Υπάρχει ο τύπος bool στη C++.

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

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

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