Perché non è possibile utilizzare la parola chiave return all'interno degli operatori ternari in C, ad esempio: sum> 0? return 1: return 0;Operatori ternari e ritorno in C
risposta
return
è una dichiarazione. Le istruzioni non possono essere utilizzate all'interno di espressioni in questo modo.
Perché un'operazione ternaria è un'espressione e non è possibile utilizzare le istruzioni nelle espressioni.
Si può facilmente utilizzare un operatore ternario in un ritorno però.
return sum > 0 ? 1 : 0;
O come DrDipShit rilevare:
return sum > 0;
di just: return sum> 0; che funziona comunque come restituire 1 o 0. –
@DrDipShit: molto vero, in questo caso funziona altrettanto bene :) – Wolph
Perché return
è un'affermazione, non un'espressione. Non puoi fare anche int a = return 1;
.
visualizzare la sintassi di un operatore ternario è
expr1 ? expr2: expr3;
dove expr1
, expr2
, expr3
sono espressioni;
L'operatore ?:
funziona come segue expr1
viene valutata prima se è vero expr2
viene valutata altrimenti expr3
viene valutata.
quindi nelle espressioni l'istruzione return non può essere utilizzata in linguaggio C.
-1, in realtà non risponde alla domanda. anche SO non è progettato per indirizzare il traffico verso il tuo sito web – Hasturkun
Solo osservando la sintassi è necessario sapere che un'istruzione non può essere utilizzata in un'espressione. Si può ottenere ciò che si desidera facendo: return sum > 0 ? 1 : 0;
- 1. operatori ternari in C#
- 2. Posso creare operatori ternari in C#?
- 3. Operatori ternari multipli
- 4. ternari dell'operatore e Sequence Punti in C
- 5. Operatori ternari in JavaScript senza "altro"
- 6. Operatori ternari che restituiscono "true: false". Perché?
- 7. Operatori ternari. Possibile un'azione a un lato?
- 8. Come personalizzare gli operatori ternari a Swift
- 9. AngularJS - Utilizzo di operatori ternari e filtri all'interno di un
- 10. Quali sono i tipi di ritorno degli operatori in C++?
- 11. Tipo di ritorno di operatori bit a bit in C++
- 12. Operatori e funzioni in C/C++
- 13. operatori prefissi e postfissi C++
- 14. affettare e l'overloading degli operatori in C++
- 15. precedenza degli operatori in C#
- 16. Operatori che sovraccaricano in C++
- 17. Operatori di conversione in C++
- 18. Comma tra operatori in C++
- 19. Differenza tra operatori uguali (LINQ) e == (C#)?
- 20. C++ typedef e l'overloading degli operatori
- 21. Come rendere gli operatori ternari formato ReSharper line-avvolte nel modo seguente
- 22. C++ puntatori agli operatori
- 23. sovraccarico + =, +, == e = gli operatori
- 24. Qual è la diffrenza tra & e && operatori in C#
- 25. Operatori e metodi in Ruby
- 26. Operatori operatori trasparenti
- 27. È possibile sovraccaricare gli operatori in C?
- 28. Operatori come parametri di metodo in C#
- 29. Precedenza degli operatori logici in C
- 30. Quali operatori logici C++ utilizzate: e, o, non e gli operatori di stile ik o C? perché?
Cosa c'è che non va con "somma di ritorno> 0? 1: 0; '? –
Oppure, se è così, 'if (sum> 0) restituisce 1; else return 0; ' –
Grazie per tutte le risposte. Non c'è niente di sbagliato nella somma di ritorno> 0? 1: 0; Voglio solo sapere perché non possiamo usarlo nel modo sopra menzionato nella domanda. – nullpointerexception