[C++] Parę pytań dotyczących składni i modyfikacji kodu


(xDarkness) #1

Witam.

Jestem co prawda początkującym programistą, lecz mimo to lubię sobie czasem usiąść i zrobić jakąś banalną aplikację opartą na instrukcjach sterujących.

Dziś chciałem zrobić aplikację, w której za wymyśloną przez siebie gotówkę możemy kupić jakieś auto.

Mam parę pytań apropo (jeszcze niedokończonej) aplikacji:

  1. Jak w instrukcji sterującej "Else if" mogę nadać zmiennej dwie właściwości?

np. chciałbym aby zmiennej "a" typu całkowitego o wartości dodatniej było przypisane nie tylko (jak poniżej) 500<=a , ale żeby jeszcze "a" było (jak ja to nazywam) mniejsze do równości z 1000 (tak jak poniżej 500 jest mniejsze do równości z "a".

unsigned int a;

else if(500<=a)
  1. Jak powrócić do wcześniejszej instrukcji? (jeśli jest to w ogóle możliwe)

np. jest menu i jak wejdzie się w kolejne podzakładki i podzakładki podzakładek, których wszystkich początkiem było menu główne to jak zrobić, aby wyjść z tych podzakładek (np. po wciśnięciu klawisza 0) do menu.

PS. Instrukcja "break" po każdej instrukcji else if nie działa!

  1. Tak poza aplikacją. Do czego służy void? (bo często spotykam, że jest wymagany i nie wiem do czego wgl. służy)

Pytania są bardzo teoretyczne i dotyczą głównie budowy, hierarchii, i takich ogólnych zasad panujących w C++.

Z góry dziękuję !!


(Drobok) #2

jest if, jest else, nie ma instrukcji sterującej "else if"

@1 użyj AND:

if(500<=a && a<=1000) str::cout << "a należy do przedziału <500,100>";

@2 używasz funkcji

void costam(){

 //tutaj kod

}

//wywoluje funckje

costam();

//tutaj kod

//wracamy do funkcji

costam();

bądź goto

costam://jeśli to ostatnia linia funckji wymagany jeszcze średnik

//tutaj kod

//wracamy do costam

goto costam;

//ten kod się zapętli, musisz zrobić jakiś warunek etc

@3 void to brak zwracanej wartości, możesz np użyć int, wtedy zwraca int etc


(Frankfurterium) #3

Tylko kiedy nakazuje ci to ktoś groźny i uzbrojony albo naprawdę, naprawdę nie masz innego wyjścia (trudne do wyobrażenia) :stuck_out_tongue:


([alex]) #4

@2, jeżeli break nie działa to znaczy coś nie tak zrobiłeś lub zrobiłeś to w funkcjach.

Jeżeli zrobiłeś to w funkcjach to dla powrotu wystarczy return;


(kostek135) #5

@3 void dosłownie pusty, ale zależy od kontekstu, samo występuje przy informacji jaki typ zostanie zwrócony, oznacza, że nic nie zostanie zwrócone. Jeśli występuje z * oznacza wskaźnik na "surowy adres" bez informacji o typie. Nie możesz na nim wykonywać operacji przesuwania wskaźnika (bo nie wiesz ile bajtów zajmuje jedna komórka informacji).

Teraz wskaźnika na void raczej się nie używa, bo jego funkcję można zastąpić szablonem, ale w C ich nie było i wtedy przydawały się, gdy chcieliśmy napisać, bardziej uniwersalną funkcję. Takim przykładem może być np. jakaś funkcja sortująca sort(wsk_poczatku, ile_elementów, wsk_na_fun_ustalajaca_porzadek(void*, void*)), dzięki temu możemy przekazać dowolny porządek, dla dowolnego typu poprzez rzutowanie.

PS.

Piękny frazes :smiley: