Powtarzanie zmiennych w switch

0

Witam.

Jako początkujący programista zmuszony jestem zapytać o poradę.
Czy mogę powtórzyć kilka tych samych zmiennych i pętli w kilku wyborach?
np.

 
	switch(wybierz) {
	case 1:
			for (stawka=1;stawka<budzet;stawka=(stawka*2)) {
				tmp = (2*stawka) - 1;
			}
	    break;
	    
	case 2:
			for (stawka=1;stawka<budzet;stawka=stawka*3) {
				tmp = (3*stawka) - 1;
			}
	    break;
	case 3:
			for (stawka=1;stawka<budzet;stawka=stawka*4) {
				tmp = (4*stawka) - 1;
			}
	    break;
	    
	default:
	    cout << "Zegnam.";
	    break;
	}

Czy nie jest to jakiś kardynalny błąd?
Pozdrawiam.

3
for (stawka=1; stawka<budzet; stawka *= wybierz+1)
{
 tmp = ((wybierz+1)*stawka) - 1;
}

(y)

0

Pokaż cały kod. na pierwszy rzut oka wydaje się, że można to sprowadzić do jednej prostej funkcji.

0

Generalnie to chodzi mi tylko o, bo reszta kodu zmienia się diametralnie zależnie od wyniku.
Dzięki wam! ;)

1

@abelabel2 jeśli jakiś fragment kodu powtarza Ci się w praktycznie takiej samej formie więcej niż raz to znak że warto napisać funkcję, w Twoim przykładzie

 
void process( unsigned int value )
{
   for( stawka = 1; stawka < budzet; stawka *= ( value + 1 ) )
      tmp = ( ( value + 1 ) * stawka ) - 1;
}

i później w switch wywołujesz sobie przekazując tylko parametr

 
switch(wybierz) {
    case 1:
            process( wybierz );
        break;

1 użytkowników online, w tym zalogowanych: 0, gości: 1