Programowanie
#C:
int a,b,c
a=1; b=2; c=3;
switch(2*a+b/c)
{
case 2: printf("OLA\n");
case 3: printf("JAGA\n"); break;
default: printf("OK\n");
}
Takie mam może proste pytanie, ale..
Co tu zostanie wyświetlone na ekranie?
wyrażenie w switchu jest =2, ale czy to się później zapętla do momentu break?
3 lut 00:40
#C: I jeszcze jedno..
Przedstaw liczbę dziesiętną −1.75 w systemie binarnym w notacji zmiennopozycyjnej
znormalizowanej na 8 bitach (1bit –znak / 3 bity – wykładnik zapisany z nadmiarem cztery / 4
bity – mantysa).
3 lut 00:47
Dziadek Mróz:
Żadnej pętli nie ma, wykona się case 2 i case 3
3 lut 00:55
#C: No dobrze, ale dlaczego?
3 lut 01:00
#C: Dziadku Mrozie?
3 lut 01:24
jakubs: Ty nie masz tam żadnej pętli, więc wykona się case 2 następnie case 3 i koniec, bo masz brake
po case 3.
3 lut 01:49
#C: Rozumiem.
Czyli
switch(3)
{
case 2: printf("OLA\n");
case 3: printf("JOLA\n");
case 4: printf("JAGA\n"); break;
default: printf("OK\n");
}
Na ekranie wyświetliłoby:
JOLA
JAGA
tak?
3 lut 02:12
jakubs: Jeszcze OLA
3 lut 02:31
#C: No ale przecież instrukcje zaczyna od 3..
3 lut 02:42
jakubs: W takim razie jak wiesz lepiej, to skompiluj i uruchom program
3 lut 02:51
3 lut 02:56
jakubs: Czyli jednak da się sprawdzić samemu, a nie pisać na forum ?
3 lut 03:02
#C: Chodziło mi bardziej o wytłumaczenie dlaczego tak się dzieje, bo wklepanie i wynik niczego mi
nie dają. Ja myślałem, że jak jest switch(3) to wykona tylko case:3, a nie wszystko pod nim..
3 lut 03:04
3 lut 03:05
kyrtap:
3 lut 03:06
#C: Ok, dzięki. Wybacz jeżeli Cię wkurzyłem, bo jakoś mam takie wrażenie.
3 lut 03:07
jakubs: Nie no spoko, była późna pora, może zbyt nerwowy byłem
3 lut 12:38