Powtarzanie zmiennych w switch

Powtarzanie zmiennych w switch
A2
  • Rejestracja:prawie 11 lat
  • Ostatnio:ponad 10 lat
  • 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.

edytowany 1x, ostatnio: abelabel2
Patryk27
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:ponad rok
  • Lokalizacja:Wrocław
  • Postów:13042
3
Kopiuj
for (stawka=1; stawka<budzet; stawka *= wybierz+1)
{
 tmp = ((wybierz+1)*stawka) - 1;
}

(y)


edytowany 1x, ostatnio: Patryk27
KA
(y) - intryguje mnie znaczenie tych znakow :p ??
Patryk27
Fejsbukowa "łapka w górę" :P
KA
aaaa no tak ^^
KA
KA
  • Rejestracja:prawie 12 lat
  • Ostatnio:prawie 5 lat
  • 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.


PROGRAMY NA ZAMÓWIENIE, ZALICZENIA STUDENCKIE, KONFIGURACJA SERWERÓW, SYSTEMÓW I BAZ DANYCH, STRONY INTERNETOWE, POMOC W PROGRAMOWANIU, POPRAWIENIE I OPTYMALIZACJA APLIKACJI
JAVA, C++, LINUX, WWW, SQL, PYTHON
POSIADAM KOMERCYJNE DOŚWIADCZENIE
TANIO, SZYBKO I PORZĄDNIE
Z KOMENTARZAMI OBJAŚNIAJĄCYMI KOD
PISZ NA PRYWATNĄ WIADOMOŚĆ
CENY JUŻ OD 49,99ZŁ ZA PROGRAM
ZAJMIJ SIĘ TYM CO CIĘ NAPRAWDĘ INTERESUJE!
A2
  • Rejestracja:prawie 11 lat
  • Ostatnio:ponad 10 lat
  • 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:prawie 13 lat
  • Ostatnio:ponad 10 lat
  • 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.