Powtarzanie zmiennych w switch

Powtarzanie zmiennych w switch
A2
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 4
0

Witam.

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

Kopiuj
 
	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.

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
3
Kopiuj
for (stawka=1; stawka<budzet; stawka *= wybierz+1)
{
 tmp = ((wybierz+1)*stawka) - 1;
}

(y)

KA
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Warszawa
  • Postów: 1683
0

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

A2
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 4
0

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

EM
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 271
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

Kopiuj
 
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

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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.