int qempty()
{
return (f == r ? 1 : 0);
}
Co w powyższym fragmencie oznacza „ ? ”? Czym możemy to zastąpić?
c++
operators
ternary-operator
Thaier Alkhateeb
źródło
źródło
Odpowiedzi:
Jest to powszechnie określane jako operator warunkowy i używane w ten sposób:
... jeśli
condition
szacuje się natrue
, wyrażenie oblicza naresult_if_true
, w przeciwnym razie zwracaresult_if_false
.To jest cukier syntaktyczny iw tym przypadku można go zastąpić
int qempty() { if(f == r) { return 1; } else { return 0; } }
Uwaga: Niektórzy ludzie nazywają
?:
go „ operatorem trójskładnikowym ”, ponieważ jest to jedyny operator trójskładnikowy (tj. Operator, który przyjmuje trzy argumenty) w języku, którego używają.źródło
a? b : c
cukier syntaktyczny[&]() -> Type { if (a) return b; else return c; }()
.To jest operator trójskładnikowy, w zasadzie jest to instrukcja wbudowana if
działa jak
if(x) y else z
z wyjątkiem, zamiast instrukcji masz wyrażenia; więc możesz go użyć w środku bardziej złożonej instrukcji.
Jest to przydatne do pisania zwięzłego kodu, ale może być nadużywane do tworzenia trudnego do utrzymania kodu.
źródło
Możesz po prostu przepisać to jako:
int qempty(){ return(f==r);}
Który robi to samo, co powiedział w innych odpowiedziach.
źródło
Tylko uwaga, jeśli kiedykolwiek to zobaczysz:
Jest to rozszerzenie standardu GNU (patrz https://gcc.gnu.org/onlinedocs/gcc/Conditionals.html#Conditionals ).
To jest to samo co
źródło
x = 1+1 ? : 0
; poprawnie zwraca2
, w moim kompilatorze i to nic nie narzekało.Nazywa się operatorem warunkowym .
Możesz go zastąpić:
int qempty(){ if (f == r) return 1; else return 0; }
źródło
To operator warunkowy.
a? pne
To skrót do IF / THEN / INNE.
oznacza: jeśli a jest prawdziwe, zwróć b, w przeciwnym razie zwróć c. W tym przypadku, jeśli f == r, zwróć 1, w przeciwnym razie zwróć 0.
źródło
Znak zapytania to operator warunkowy. Kod oznacza, że jeśli f == r to zwracane jest 1, w przeciwnym razie zwraca 0. Kod można przepisać jako
int qempty() { if(f==r) return 1; else return 0; }
co prawdopodobnie nie jest najczystszym sposobem, ale miejmy nadzieję, że pomaga w zrozumieniu.
źródło