• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Warunek "If" i zmienna z przedziału liczb...?

Object Storage Arubacloud
0 głosów
10,134 wizyt
pytanie zadane 6 maja 2015 w C i C++ przez bartello88 Użytkownik (670 p.)
Piszę kalkulator BMI i zastanawiam się czy jest jakiś krótszy sposób zapisu kodu gdzie instrukcją IF sprawdzamy czy zmienna mieście sięw jakimś przedziale liczb. Narazie wygląda to tak:

      else if((wynik>=17.0)&&(wynik<18.49))cout << "Niedowaga!"<<endl;

 

Poproszę o radę i pozdrawiam.

4 odpowiedzi

+1 głos
odpowiedź 6 maja 2015 przez Kuba Stary wyjadacz (12,460 p.)

Możesz napisać sobie funkcję tego typu:

bool check(float checked, float lowerLimit, float upperLimit) {
     if(checked >= lowerLimit && checked < upperLimit) return true;
return false;
}

Następnie wywołujesz w ten sposób

if(check(wynik, 17.0f, 18.49f)) cout<<"Niedowaga!"<<endl;

Aha i nie nadużywaj nawiasów tam gdzie są niepotrzebne. Wewnętrzne nawiasy w twoim ifie są zbędne.

komentarz 6 maja 2015 przez hit02 Nałogowiec (33,970 p.)

Moim zdaniem lepiej pisać za dużo nawiasów niż za mało. Co byś powiedział na przykład na taki przypadek:

#define add(a, b) a + b
.
.
.
int a = add(7, 5) * 4;

Jeśli nawiasy można wstawić, to lepiej pisać ich za dużo, niż potem mieć trudne do znalezienia błędy w kodzie.

0 głosów
odpowiedź 6 maja 2015 przez hit02 Nałogowiec (33,970 p.)
Chyba niestety nie istnieje żaden sposób, ale jak coś wymyślę, to powiem.

Można by ewentualnie stworzyć tablicę tych wartości i tylko jednego if() w pętli.
0 głosów
odpowiedź 6 maja 2015 przez Bantu Nałogowiec (34,170 p.)
Możesz pozbyć się ewentualnie nawiasów, w którzych masz np. (wynik>=17.0), bo akurat one są zbędnę, ale innego krótszego zapisu tutaj nie ma, ten i tak jest dość krótki. Gdy w przyszłości będziesz programować bardziej złożone rzeczy to przekonasz się, że taki sposób jest jednym z najkrótszych.
–1 głos
odpowiedź 6 maja 2015 przez Ehlert Ekspert (212,670 p.)

Jest ok. Dobrze, że się tym interesujesz, bo warunki należy pisać jak najprościej. If obsługuje przedziały liczb własnie w ten sposób. Następnym razem kod 

koloruj!

 

komentarz 6 maja 2015 przez bartello88 Użytkownik (670 p.)
Bardziej pytanie wynika z mojego lenistwa niż ciekawości, ale na jedno wychodzi:)
komentarz 1 czerwca 2015 przez rachom Nowicjusz (100 p.)

                if (wynikbmi <= 16)
                    
                    $("#bmi").html("Twoje BMI:" + (" ") + wynikbmi + "wyglodzenie");
                    
                    
                    else if (wynikbmi < 17)
                    
                        $("#bmi").html("Twoje BMI:" + (" ") + wynikbmi + "Wychudzenie (spowodowane czesto przez ciezka chorobe lub anoreksje)");
                    
                    else if (wynikbmi  < 18.5)
                    
                        $("#bmi").html("Twoje BMI:" + (" ") + wynikbmi + "niedowaga");
                    
                    else if (wynikbmi < 25)
                    
                        $("#bmi").html("Twoje BMI:" + (" ") + wynikbmi + "wartosc prawidlowa");
                    
                    else if (wynikbmi < 30)
                    
                        $("#bmi").html("Twoje BMI:" + (" ") + wynikbmi + "nadwaga");
                    else if (wynikbmi < 35)
                    
                        $("#bmi").html("Twoje BMI:" + (" ") + wynikbmi + "1 stopien otylosci");
                
                    else if (wynikbmi < 40)
                    
                    
                        $("#bmi").html("Twoje BMI:" + (" ") + wynikbmi + "2 stopien otylosci (otylosc kliniczna)");
                    
                    else if (wynikbmi >= 40)
                    
                    
                        $("#bmi").html("Twoje BMI:" + (" ") + wynikbmi + "3 stopien otylosci(otylosc skrajna)");
                    

U mnie ja to tak zrobiłem

Podobne pytania

0 głosów
1 odpowiedź 817 wizyt
pytanie zadane 30 maja 2015 w C i C++ przez ceplusplus Początkujący (440 p.)
0 głosów
1 odpowiedź 250 wizyt
pytanie zadane 5 listopada 2019 w C i C++ przez KonDZIKs Bywalec (2,770 p.)
0 głosów
2 odpowiedzi 244 wizyt
pytanie zadane 8 maja 2018 w C i C++ przez aciorek Nowicjusz (150 p.)

92,579 zapytań

141,432 odpowiedzi

319,662 komentarzy

61,964 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...