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

zmienna float dodanie + do każdego przez jeden if

–2 głosów
177 wizyt
pytanie zadane 22 sierpnia 2019 w C i C++ przez niezalogowany
Heyo.

Jest jakaś możliwość aby przez jeden if z = zrobić += ?

Bo ja nie mam pomysłu
komentarz 22 sierpnia 2019 przez tangarr VIP (136,880 p.)
Co masz na myśli? Rozwiń myśl. Napisz co już masz i jaki efekt chcesz uzyskać.
komentarz 22 sierpnia 2019 przez niezalogowany

ciężko to rozpisać ale...

chce uzyskać taki efekt 

if(zmienna==true)
float_1 += 120;
else if (zmienna==fale)
float_1 = 120;

tylko żeby nie pisać ciągle te if

takie coś jak zmienne int

if(zmienna==true)
int_1 = '=';
else if(zmienna==false)
int_1 = '+='

 

komentarz 22 sierpnia 2019 przez tangarr VIP (136,880 p.)

Wcale nie musisz pisać drugiego if.
Jeżeli masz zmienną logiczną bool to może ona przyjmować tylko dwie wartości true i false.
Wystarczy ci kod:

if (zmienna == true)
    float_1 += 120;
else
    float_1 = 120;

lub nawet:

if (zmienna)
    float_1 += 120;
else
    float_1 = 120;
komentarz 22 sierpnia 2019 przez niezalogowany
Ale nie chodzi mi o to . btw dobra dam sb rade
1
komentarz 22 sierpnia 2019 przez tangarr VIP (136,880 p.)

Nie możesz sobie ustalić operatora do użycia w ten sposób (lub przynajmniej o tym nie wiem).
Najbliższym rozwiązaniem tego problemu byłoby użycie funkcjonału (lub wskaźnika na funkcję).
 

#include <functional>

bool zmienna = ...
float float_1 = .....

void funkcja() {
    std::function<void(float&, float)> f;
    if (zmienna) {
        f = [](float &wynik, float x) {
            wynik += x;
        };
    }
    else {
        f = [](float &wynik, float x) {
            wynik = x;
        };
    }
    f(float_1, 120);
}

 

komentarz 22 sierpnia 2019 przez Storm088 Obywatel (1,460 p.)
edycja 22 sierpnia 2019 przez Storm088

Ewentualnie jak masz tu do czynienia z dodawaniem i przypisaniem to wtedy można zrobić to tak:

if(bool_var==true) var_1=0;

var_1+=var_2;

,gdzie bool_var to jakaś twoja zmienna bool, a var_1 i var_2 to zmienne np int.

Teraz jeżeli bool_var będzie równe true to var_1 będzie równe var_2, a jeżeli nie to wtedy var_1 będzie równe var_1(poprzednia wartość) plus var_2.

PS. true możesz zmienić na false jak ci to tam będzie pasowało 

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
3 odpowiedzi 200 wizyt
pytanie zadane 6 czerwca 2019 w Offtop przez wsnofi Bywalec (2,550 p.)
0 głosów
1 odpowiedź 46 wizyt
pytanie zadane 10 grudnia 2021 w JavaScript przez Grzegorz Mikina Mądrala (7,240 p.)
0 głosów
1 odpowiedź 98 wizyt
pytanie zadane 23 września 2018 w JavaScript przez xLooks Początkujący (250 p.)

86,541 zapytań

135,291 odpowiedzi

300,649 komentarzy

57,288 pasjonatów

Motyw:

Akcja Pajacyk

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

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...