Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

pętla for w switch

Ostatnio zmodyfikowano 2010-03-04 07:27
Autor Wiadomość
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.
C/C++
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
P-14566
szyx_yankez
» 2010-03-03 16:13:56
Można.
C/C++
switch( zmienna )
{
case 1:
    {
        for( int x = 0; x < 10; x++ )
        {
            cout << "costam";
        }
    } break;
}
P-14568
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
P-14569
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):
C/C++
int foo = rand() % 3 + 1;
int i = 0;

switch( foo )
{
    for(; i < 3; i++ )
    {
    case 1:
        puts( "a" );
        // deliberate fallthru
    case 2:
        puts( "b" );
        // deliberate fallthru
    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:
C/C++
switch( foo )
{
    case 0;
case 1:
case 2:
case 3:
case 4:
    cout << "blabla";
    break;
}
P-14570
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) ? ;>
P-14583
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.
P-14586
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
P-14595
« 1 »
  Strona 1 z 1