Program działa ale zamiast liczb 1,2,3,4 chciałbym wpisać przedział np od 1 do 10.
{
int a=StrToInt(Edit1->Text);
switch (a)
{
case 1:Application->MessageBoxA("ale jestes młody","uwaga",0); break;
case 2:Application->MessageBoxA("czas do szkoły","uwaga",0); break;
case 3:Application->MessageBoxA("ach ta praca i praca...","uwaga",0); break;
case 4:Application->MessageBoxA("Po ciężkiej pracy czas na emeryturę","uwaga",0); break;
default :Application->MessageBoxA("Idź do okulisty","uwaga",0);
}
}
Program jak widać prosty jak budowa cepa, jednak nie mogę dojść jak zapisać przedział … wiem że w delphi to by wyglądało [1…10] ale tutaj nie mam bladego pojęcia …
no to rozwiązanie z ifami to ja znam , ale sęk w tym że ten program będzie jeszcze dłuższy ( będzie trochę tych przedziałów ) i wolałbym jednak rozwiązanie ze switch :?
Z tego co wiem switch nie daje opcji zakresu. W case’ach trzeba podawać konkretne wartości.
Można też zrobić tak:
switch (a)
{
case 1:
case 2:
case 3:
case 4: Application->MessageBoxA("ale jestes młody","uwaga",0); break;
default :Application->MessageBoxA("Idź do okulisty","uwaga",0);
}
chyba jako jedyny nie bardzo rozumiem o co Ci chodzi :roll: chcesz żeby program wyświetlił rekordy 1-10 potem 11-20 itd czy co ? jak tak to zrób to za pomocą pętli jakiejś
Program jest na tyle prosty że tu nie bardzo jest co rozumieć … w okienku edit 1 wpisujesz jakąś tam liczbę ( wiek ) po przyciśnięciu w button1 program sprawdza w jakim się przedziale znajduje i w zależności od tego wyświetla okienko z odpowiednim tekstem … dzisiaj zapytałem psora od programowania i powiedział to co somekind … funkcja switch nie działa z przedziałami. Nie mam wyboru, po prostu zrobię ten program z if.
gdzie “dd” to nazwa pola do którego wpisuję tekst a “odpisz” to pole wyświetlające komunikat. Opisy wczytywane są z tablicy a druga tablica z przedziałami co 10 jest robiona za pomocą pętli
to wtedy pozostaje chyba tylko ręcznie zdefiniować tablicę z wartościami. W pętli się nie da bo niby według jakiej reguły :roll: a mój przykład pozwala tylko na zmianę co 5 albo 15 itp. a w przypadku różnych wartości podzieliłbym pierwszą tablicę na dwie wartości za pomocą split np:
opis[1]="18|osiemnastka ;p "
jedna tablica, ładny kod i mało edycji a co do if-ów to jestem na nie
Jednak wolę to zrobić w ifach … z tego przykładu nie wiele rozumię, i wolę tego psorowi nie pokazywać … Dziękuję za pomoc, a temat uważam za zamknięty, gdyż program już napisałem z pomocą instrukcji IF.