Δημοσιεύτηκε: 14 Μαρ 2012, 17:22
από migf1
Βασικά το πιο ευανάγνωστο (και συνηθισμένο) πάει κάπως έτσι...

Μορφοποιημένος Κώδικας: Επιλογή όλων
...
#define VALID_OPTION(opt) ( (opt) > 0 && (opt) < 4 )
...
bool do_option( int ch )
{
if ( !VALID_OPTION(ch) ) {
puts( "Invalid option" );
return false;
}

if ( 1 == ch )
do_1( ... );

else if ( 2 == ch )
do_2( ... );

else /* 3 == ch */
do_3(...);

return true;
}

int main( void )
{
...
ch = get_option();
do_option(ch);
...
return 0;
}

Εναλλακτικά μπορεί να γίνει με switch...

Μορφοποιημένος Κώδικας: Επιλογή όλων
bool do_option( int ch )
{
switch ( ch )
{
case 1:
do_1( ... );
break;

case 2:
do_1( ... );
break;

case 3:
do_3( ... );
break;

default:
puts( "Invalid option" );
return false;
}

return true;
}

Την do_option() την όρισα bool (αντί π.χ. για void) σε περίπτωση που χρειάζεται να ξέρει η main() αν απέτυχε ή όχι.