Puoi anche fare a meno degli "if":
;-)codice:/* Isidoro Ghezzi, 2 feb 2010 $ g++ --version; g++ -ansi -pedantic -Wextra -Wconversion main.cpp; ./a.out i686-apple-darwin8-g++-4.0.1 (GCC) 4.0.1 (Apple Computer, Inc. build 5367) Copyright (C) 2005 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. The number -5 is less than 1; The number 0 is less than 1; The number 1 is between 1 and 10; The number 2 is between 1 and 10; The number 10 is between 1 and 10; The number 2010 is greater than 10; */ #include <iostream> #include <algorithm> namespace ig{ void TestNoSwitchAndIf (const int theSelector){ const char * kCStringContainer []={ "less than 1", "between 1 and 10", "greater than 10" }; const unsigned short aIndex = (theSelector >= 1) + (theSelector > 10); std::cout << "The number " << theSelector << " is " << kCStringContainer [aIndex] << ";" << std::endl; } } int main (void){ const int kTestContainer []={ -5, 0, 1, 2, 10, 2010 }; std::for_each (kTestContainer, kTestContainer + sizeof (kTestContainer)/sizeof (kTestContainer [0]), ig::TestNoSwitchAndIf ); return 0; }

Rispondi quotando