pętla for w switch
Ostatnio zmodyfikowano 2010-03-04 07:27
Carlosss Temat założony przez niniejszego użytkownika |
pętla for w switch » 2010-03-03 15:53:46 Można zamieścić pętlę for w switch?? tzn. np. switch( wybor ) { for( int a = 0; a < 5; a++ ) { case a: cout << "blabla"; break; } }
Jeśli tak to jak?? Bo powyzszy przykład niedziała pozdROW Carlosss PS. Już 2 temat dzisiaj :D |
|
szyx_yankez |
» 2010-03-03 16:13:56 Można. switch( zmienna ) { case 1: { for( int x = 0; x < 10; x++ ) { cout << "costam"; } } break; }
|
|
Carlosss Temat założony przez niniejszego użytkownika |
» 2010-03-03 16:22:16 widać nie zrozumieliśmy się chodzi mi o to żeby w petli for było case a nie na zewnątrz |
|
Elaine |
» 2010-03-03 16:31:47 Można, aczkolwiek nie da się zrobić tego, o co ci chodzi(wartość w case musi być stała): int foo = rand() % 3 + 1; int i = 0;
switch( foo ) { for(; i < 3; i++ ) { case 1: puts( "a" ); case 2: puts( "b" ); case 3: puts( "c" ); } } Kto powie, co to wypisze i dlaczego wynik jest taki a nie inny? :> Jeśli chodzi o kod z pierwszego postu (jeżeli dobrze zrozumiałem zamiary), to można to bez problemów zrobić tak: switch( foo ) { case 0; case 1: case 2: case 3: case 4: cout << "blabla"; break; } |
|
malan |
» 2010-03-03 18:07:42 Bez sprawdzenie tego (tj. skompilowania) powiedziałbym, że program wypisze literkę odpowiednią dla wartości zmiennej foo tylko raz.. Dlaczego? Hmm..., ponieważ po wejściu do switch program świata nie widzi poza case (tzn. omija wszystko prócz niego) ? ;> |
|
Elaine |
» 2010-03-03 18:44:10 Nie. case to tylko miejsca skoku, po dotarciu do case'a kod się normalnie wykonuje, w tym wypadku dociera przechodzi przez wszystkie wywołania puts i dochodzi do końca pętli for (bo żadnego breaka itp. tu nie ma), co oznacza wykonanie się trzeciego wyrażenia dla fora i sprawdzenie warunku, a dalej już normalnie - jeśli jest prawdziwy, to wykonujemy ciało pętli. |
|
Carlosss Temat założony przez niniejszego użytkownika |
» 2010-03-04 07:27:16 Można, aczkolwiek nie da się zrobić tego, o co ci chodzi(wartość w case musi być stała): |
aha dziękuje oto mi chodziło |
|
« 1 » |