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

[Początkujący] if(x) {zrób cośtam}; if(x) o co chodzi?

Object Storage Arubacloud
+1 głos
1,236 wizyt
pytanie zadane 4 września 2017 w C i C++ przez Stronk Użytkownik (660 p.)

Witam, w podręczniku Informatyka Europejczyka (Zadanie 1.10) na samym wstępie do algorytmów znajduje się taki oto kod (poniżej)

Proszę o wytłumaczenie:
1. if (x) x++; //jak ten if ma się wykonać, jeżeli nie ma żadnego warunku, jest samo (x) ???
2. else if (x+y) // to samo
3. else if (y) // to samo

Z góry dziękuję za odpowiedź i pozdrawiam.
 

#include <iostream>

using namespace std;

int main()
{
    double x=0,y=1;
    if (x) x++;
    else if (x+y) y*=x+3;
         else if (y) x-=y*3;
    x+=y;
    cout<<"x = "<<x<<"\ty = "<<y<<endl;
    return 0;
}

 

4 odpowiedzi

+3 głosów
odpowiedź 4 września 2017 przez surfeliza Stary wyjadacz (11,260 p.)
wybrane 4 września 2017 przez criss
 
Najlepsza
Liczba 0 odpowiada wartości false, wszystkie pozostałe true.

Pierwsza instrukcja warunkowa wykona się tylko wtedy, gdy x będzie miało wartość różną od 0.
+2 głosów
odpowiedź 4 września 2017 przez niezalogowany
edycja 4 września 2017

W C++ liczba może być konwertowana na typ bool (typ logiczny). Gdy liczba równa jest zero zamieni się na false, a jeżeli nie to na true. Więc sam if(x) oznacza warunek if(x!=0). Jeżeli zaś chodzi jeszcze o brak klamer:

if(x) {zrób kilka linii w tym}; 
if(x) zrup jednom linie po tym
1
komentarz 4 września 2017 przez unknown Nałogowiec (39,560 p.)

zrup jednom zrup jednom zrup jednom zrup jednom zrup jednom zrup jednom zrup jednom zrup jednom zrup jednom zrup jednom zrup jednom zrup jednom zrup jednom 

1
komentarz 4 września 2017 przez niezalogowany
To jest prawie autentyczny cytat ;D
+1 głos
odpowiedź 4 września 2017 przez Stronk Użytkownik (660 p.)
Dziękuję badzo! :))
+1 głos
odpowiedź 4 września 2017 przez Tpk Nałogowiec (40,100 p.)
edycja 4 września 2017 przez Tpk
Można to interpretować mniej więcej tak, że jeżeli x istnieje (został wcześniej zdefiniowany) i jego wartość nie wynosi 0 to zwróci true.

Znaczy to to samo co if ( x != 0 )

Reszta działa tak samo. Ponieważ x=0 a y=1 to po dodaniu będzie 1 więc true dlatego drugi warunek zostanie spełniony i tym samym puszcza całą resztę, potem masz coś takiego y *= x + 3 co można przeczytać jako y = y * (x + 3) - wykonane zostanie zgodnie to z kolejnością wykonywania działań.
1
komentarz 4 września 2017 przez niezalogowany
Raczej jako y = y * (x + 3)
1
komentarz 4 września 2017 przez Tpk Nałogowiec (40,100 p.)
A tak dzięki, już poprawione ;)

Podobne pytania

0 głosów
3 odpowiedzi 1,028 wizyt
pytanie zadane 31 marca 2018 w Systemy operacyjne, programy przez Kamil29072 Obywatel (1,700 p.)
0 głosów
0 odpowiedzi 139 wizyt
pytanie zadane 7 grudnia 2019 w Matematyka, fizyka, logika przez Grzesiu123 Początkujący (360 p.)
0 głosów
0 odpowiedzi 138 wizyt
pytanie zadane 2 grudnia 2019 w C i C++ przez Char Mander Nowicjusz (180 p.)

92,579 zapytań

141,432 odpowiedzi

319,664 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!

...