Jump to content
  • Chmurka
  • Boróweczka
  • Jabłuszko
  • Limonka
  • Czekoladka
  • Węgielek
MAGNET

06. Instrukcje warunkowe | Koduj z Magnetem #6

Recommended Posts

https://www.youtube.com/watch?v=42BcZh6brDE
Hej! Skorzystałeś z linku lub pobrałeś załącznik? Uhonoruj naszą pracę poprzez rejestrację na forum i rośnij razem z nami!

 

If - funkcja warunkowa; kod znajdujący się w jej środku wykona się tylko wtedy, jeżeli podany przez nas warunek jest prawdziwy

 

if (tutaj podajemy nasz warunek) {
 	// ciało warunku 
}

 

if (true) {
 	// wykona się zawsze, ponieważ powiedzieliśmy bezpośrednio programowi że warunek jest "prawdziwy" 
}

 

Operacje:

1. Znak równości (==) - zwróci prawdę, jeśli wyrażenia stojące po jego lewej i prawej stronie są identyczne

Przykład:

int a = 5; // tworzymy zmienną o wartości 5

if (a == 5) {
 	// warunek jest prawdziwy, ponieważ a jest równe 5... 
}

 

2. Negacja (!) - zaprzecza warunkowi, który postawiliśmy:

int a = 8;
if (a != 5) {
 	// zmienna a nie wynosi 5, więc warunek jest prawdziwy :) 
}

Hint: Jeśli chcielibyśmy sprawdzić, czy wartość danej zmiennej wynosi zero, możemy to zrobić na dwa sposoby:

// 1. zwyczajnie przyrównujemy wartość a do zera...
if (a == 0) {

}

// 2. Negujemy a. Można to sobie tłumaczyć dosłownie "jeśli nie ma 'a'", a więc jeśli jej wartość wynosi równo 0
if (!a) {
  
}

// metoda numer 2 każe nam wnioskować, że zastosowanie takiego zapisu:
if (a) {
  
}
// spowoduje, że warunek wykona się, jeśli a ma wartość RÓŻNĄ od zera. Słownie: "jeśli w 'a' coś jest". Może to być wartość 1, -1, 1024, -214124...chyba zrozumiałe :)

 

 

3. Koniunkcja (operacja AND ) - wykona się, jeśli wartości po jej lewej i prawej stronie są prawdziwe:

int a = 10;
int b = 5;
// jeśli zmienna 'a' wynosi 10 I JEDNOCZEŚNIE zmienna 'b' wynosi 5, warunek jest spełniony. Wymagane są obydwa
if (a == 10 && b == 5) {
  
}

 

4. Alternatywa (operacja OR [lub]) - wykona się, jeśli przynajmniej jedna z wartości jest prawdziwa:

int a = 10;
int b = 5;
// wykona się, ponieważ pomimo że a nie wynosi 31, b już ma wartość zgodną z założeniem
if (a == 31 || b == 5) {
  
}

 

else, else if - używamy ich, kiedy chcemy wykonać inną akcję, w momencie, gdy nasz if nie zostanie spełniony. W takiej konstrukcji na samym początku zawsze jest JEDEN if, następnie używamy tyle else ifów ile tylko chcemy, a następnie na samym końcu możemy opcjonalnie (nie jest to wymagane) postawić else, który spowoduje, że jeśli żadna z przedstawionych powyżej alternatyw się nie wykona, funkcja wejdzie do ciała 'else'

 

if (pierwszy warunek) {
  
}
else if (drugi warunek) {
  
}
...
 else {
 // tutaj wchodzi, jeśli żaden z powyższych if'ów się nie wykona 
}

 

Jest jeszcze jedna ważna rzecz, której nie zaakcentowałem wystarczająco mocno w filmie: jeżeli funkcja wejdzie do któregoś ciała w naszej "choince" 'if'---'else if'---'else', na pewno nie wejdzie do pozostałych. Przykład:

int a = 10; // tworzymy sobie zmienną

// oczywiście wejdzie do środka...
if (a == 10) {
  
}
else if (a > 5) {
  // pomimo że ten warunek również jest prawdziwy, funkcja weszła już do ciała warunku powyżej. Oznacza to, że dalsze alternatywy nie będą już rozpatrywane
}

 

GetClientHealth
Hej! Skorzystałeś z linku lub pobrałeś załącznik? Uhonoruj naszą pracę poprzez rejestrację na forum i rośnij razem z nami!
- pobiera zdrowie gracza

SetEntityHealth
Hej! Skorzystałeś z linku lub pobrałeś załącznik? Uhonoruj naszą pracę poprzez rejestrację na forum i rośnij razem z nami!
- ustawia nową wartość zdrowia (niekoniecznie graczowi - może to zrobić jakiemukolwiek innemy bytowi, który jest do tego "zdolny")

GetUserFlagBits
Hej! Skorzystałeś z linku lub pobrałeś załącznik? Uhonoruj naszą pracę poprzez rejestrację na forum i rośnij razem z nami!
- pobiera wszystkie flagi danego gracza w formie bitowej (nie masz zielonego pojęcia o co chodzi? Ten temat
Hej! Skorzystałeś z linku lub pobrałeś załącznik? Uhonoruj naszą pracę poprzez rejestrację na forum i rośnij razem z nami!
Ci wszystko rozjaśni ?)

  • Lubię to! 3
  • Kocham to! 2
  • Wow! 1

Share this post


Link to post
Share on other sites

Jak zwykle ❤️❤️

Warto by było również zaznaczyć że takie if(true) jest poprawne w sensie składni i możliwości kompilacji, ale nie powinno się tak pisać mając na uwadze dobre nawyki programistyczne i czytelność kodu ? 
Ponadto myślę że adekwatnym by było tutaj wspomnienie o bitach i podlinkowanie Twojego poradnika na ich temat, gdyż jak najbardziej można się z nimi "po(if)ować" xD 

Share this post


Link to post
Share on other sites
30 minut temu, Vasto_Lorde napisał:

Ponadto myślę że adekwatnym by było tutaj wspomnienie o bitach i podlinkowanie Twojego poradnika na ich temat, gdyż jak najbardziej można się z nimi "po(if)ować" xD 

Ostatni link ^^

  • Wow! 1

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

Nasza historia

Na początku byliśmy małą grupą internetowych znajomych, którzy stwierdzili, że potrzebne jest solidne forum, na którym znajdą się ludzie z dużą wiedzą programistyczną ukierunkowaną na CS:GO. Pomysł powstał na początku 2018 roku, a parę miesięcy później, 19 kwietnia, powstała ta strona internetowa. Jako alternatywna odpowiedź na inne tego typu miejsca, poważnie podeszliśmy do tematu, najpierw tłumacząc angielską dokumentację SourceMod'a na język polski, a potem pisząc rozległe poradniki i wypełniając forum najpotrzebniejszymi rzeczami dla właścicieli serwerów i programistów. Cała nasza Ekipa jest dumna z pracy jaką w to włożyliśmy i cieszymy się że zbierają się wokół nas zarówno ludzie znający tematy sourcepawn'a i konfiguracji, jak i również nowe twarze w tym "biznesie", którym z chęcią niesiemy wiedzę oraz pomoc w rozwiązywaniu problemów.

Największe modyfikacje serwerowe

×
×
  • Create New...