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

if return else return


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

Δημοσ.
 #ifndef MAIN_H
 #define MAIN_H 
 #include "math.h"
 #endif // MAIN_H

double LogZwei(double a) {
    if (a>0) {
       return log(a)/log(2.0d);
    }
    else {
       return 0.0d;
    }
}

Γιατί μου χτυπάει το παραπάνω σε C++ ;  :unsure:

Δημοσ.

Από όσο θυμάμαι, στη C/C++ δεν υπάρχει επίθεμα d (ή D). Δεκαδικές σταθερές χωρίς επίθεμα εννοείται πως είναι double.

 

Άσχετο, μετά από return το else είναι περιττό...

double LogZwei( double a )
{
  if (a > 0) {
    return log(a) / log(2.0);
  }
  return 0.0;
}
  • Like 1
Δημοσ.

 

Από όσο θυμάμαι, στη C/C++ δεν υπάρχει επίθεμα d (ή D). Δεκαδικές σταθερές χωρίς επίθεμα εννοείται πως είναι double.

 

Άσχετο, μετά από return το else είναι περιττό...

double LogZwei( double a )
{
  if (a > 0) {
    return log(a) / log(2.0);
  }
  return 0.0;
}

 

Και τα αγκιστρα στην if ειναι περιττα...

double LogZwei( double a )
{
  if (a > 0)
      return log(a) / log(2.0);

  return 0.0;
}
Δημοσ.

Yeap, αλλά η ύπαρξή τους κάνει safeguard σε περίπτωση που θελήσουμε να προσθέσουμε αργότερα κι άλλες γραμμές μέσα στο if. Θεωρείται καλή πρακτική να τα βάζουμε πάντα (αν κι εγώ το παραβιάζω ενίοτε).

  • Like 2
Δημοσ.

Yeap, αλλά η ύπαρξή τους κάνει safeguard σε περίπτωση που θελήσουμε να προσθέσουμε αργότερα κι άλλες γραμμές μέσα στο if. Θεωρείται καλή πρακτική να τα βάζουμε πάντα (αν κι εγώ το παραβιάζω ενίοτε).

 

Kαι εγω το παραβιαζα ενιοτε. Ο λογος ειναι οτι αισθανομαι αισθητικα και στο ματι οτι ο κωδικας ειναι πιο λιτος και ευαναγνωστος. Και στην τελικη αμα θες βαζεις τις αγκυλες μετα που το προβλημα? Στον MinGW παντως τα βάζει αυτοματα.

Δημοσ.

Το πρόβλημα είναι πως σε μεγάλα και φωλιασμένα if-else χωρίς αγκύλες, αν θελήσουμε αργότερα να τους προσθέσουμε statements είναι επίφοβο το να ξεχάσουμε να προσθέσουμε και τις αγκύλες (ειδικά αν είμαστε κουρασμένοι, κι ειδικά αν τις προσθήκες των statements τις κάνουμε με copy & paste από άλλα σημεία του κώδικα... μας ξεγελάει το ότι τα στοιχίζουμε σωστά μέσα στα if-else μετά την προσθήκη και ξεχνάμε να βάλουμε και τις αγκύλες).

Δημοσ.
 #ifndef MAIN_H
 #define MAIN_H 
 #include "math.h"
 #endif // MAIN_H

double LogZwei(double a) {
    if (a>0) {
       return log(a)/log(2.0d);
    }
    else {
       return 0.0d;
    }
}

Γιατί μου χτυπάει το παραπάνω σε C++ ;  :unsure:

 

Τι σου χτυπαει; Φραπεδακι;

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...