Wielekrotne użycie tego samego
Ostatnio zmodyfikowano 2010-12-02 19:33
rafixxx25 Temat założony przez niniejszego użytkownika |
Wielekrotne użycie tego samego » 2010-11-30 16:17:59 Witam!
Mam dość spory problem.
Chciałby się dowiedzieć, czy istnieje jakaś komenda w c++ pozwalająca przenieść się do dowolnego momentu kodu i powrót w to samo miejsce?
Mój kod wygląda mniej więcej tak:
switch( a ) { case 1: jaki ś kod kod ... kod break; case 2: jaki ś kod ten sam kod ... ten sam kod break; ... case n: jaki ś kod ten sam kod ... ten sam kod break; }
a chcia ł bym, by wygl ą da ł mniej wi ę cej tak:
switch( a ) { case 1: jaki ś kod kod ... kod break; case 2: jaki ś kod komenda; break; ... case n: jaki ś kod komenda; break; }
Nie chciałbym za każdym razem powtarzać tego ciągu(jest on długi i zawiera wiele pętli i warunków, przez co jest kłopotliwy w kopiowaniu i odpowiednim wstawieniu w kod. Program będę ciągle dopisywał, a jeśli istnmiała by taka komenda, było by mi o wiele łatwiej.
Z góry dzięki za pomoc :)
Pozdr.
edit: zarazem nie chciałbym używać tego kodu po całym switchu(by był używany dla każdego), gdyż wprowadziło by to wieeele komplikacji. |
|
pekfos |
» 2010-11-30 16:21:13 nie wiem czy dobrze zrozumiałem ale chodzi ci o coś takiego: void choose( int kod ) { switch( kod ) { case 1: break; case 2: break; case N: break; } } aby nie kopiować instrukcji warunkowych i trzymać je w jednym miejscu użyj funkcji. |
|
rafixxx25 Temat założony przez niniejszego użytkownika |
» 2010-11-30 16:32:02 Hmm... chyba tak :)
Jeszcze nie czytałem o tym, ale wydaje mi się, że to rozwiąże mój problem. Idę zaglądnąć do kursu :P
Dzięki |
|
ison |
» 2010-11-30 16:34:50 Chciałby się dowiedzieć, czy istnieje jakaś komenda w c++ pozwalająca przenieść się do dowolnego momentu kodu i powrót w to samo miejsce?
|
istnieje coś takiego jak label, ale tego się przeważnie nie używa NazwaLabla:
printf( "Foo" );
goto NazwaLabla;
z tego co widzę to znajomość funkcji by rozwiązała Twój problem |
|
Pirotechnik |
» 2010-11-30 18:05:34 widzę że kuzynek wrócił do programowania.... (xD) |
|
rafixxx25 Temat założony przez niniejszego użytkownika |
» 2010-11-30 20:07:52 Niestety, z waszej metody nie udało mi się skorzystać :/ Dobra, będe kopiował... kod będzie straszny,a le cóż :p
@Pirotechnik... :P |
|
F90M |
» 2010-11-30 20:56:33 zamiast switch( a ) { case 1: kod ten sam kod kod kod break; case 2: kod ten sam kod kod ten sam kod break; }
przykładowo napisz void JakasFunkcja() { ten sam kod } switch( a ) { case 1: kod JakasFunkcja(); kod kod break; case 2: kod JakasFunkcja(); kod JakasFunkcja(); break; }
|
|
rafixxx25 Temat założony przez niniejszego użytkownika |
» 2010-12-01 17:08:22 Nie dam rady zrobić :/
Gdy chce zadeklarować funkcję wyskakuje, że trzeb dać średnik( 45 C:\Users\...program.cpp expected primary-expression before "void" oraz 928 C:\Users\...program.cpp `funkcja' undeclared (first use this function) . Jeśli dam go na końcu,a potem użyje funkcji w jakimś miejscu wyskakuje:[Linker error] undefined reference to `funkcja()'
edit: problem naprawiony. Trzeba było zadeklarować funkcję przed int main {
Dzięki wszystkim za pomoc. Teraz czeka mnie gruntowna przeróbka kodu, ale opłaci się :P |
|
« 1 » 2 |