L'operatore ternario ? : in C ++




тернарный оператор ?: C++

sperare, si sono ben trattato il tema selezionare se e else e non si è troppo difficile da risolvere compiti su questo argomento. La stessa lezione che continuare ad imparare le basi della programmazione in C ++, e fare conoscenza con un altro operatore di selezione (ramo) – esso operatore ternario ? :

Di solito è utilizzato nei casi, e se il codice di condizione, che è necessario effettuare, le condizioni di scansione, molto semplice. Ad esempio, chiedere all'utente se vuole continuare a lavorare nel programma o vuole uscirne. La sintassi è:

тернарный оператор ?:

In primo luogo, abbiamo bisogno di scrivere una condizione necessaria per noi e mettere un punto interrogativo dietro di esso ? . ulteriormente, nella stessa linea, dopo la scrittura punto di domanda prima un semplice comando (a), che sarà eseguita, se la condizione restituisce true (vero). Dopo questo comando, abbiamo messo i due punti : e scrivere un secondo comando (a). Questa seconda squadra dopo i due punti, eseguito solo se, Se la condizione restituisce false (falso).

esempio. Supponiamo che un utente si ritira denaro da un bancomat. Aveva l'operazione, e lo schermo dovrebbe comparire domanda: “Si desidera eseguire un'altra operazione?” L'utente deve effettuare una scelta (sì o no) e premere il tasto corrispondente. Si organizzano la selezione del seguente programma:

L'utente effettua una selezione e inserisce un valore – fila 13. in linea 15 controlliamo il valore immesso. Se la condizione == variabile 1 ritorna vero (cioè, se la variabile è veramente 1), il codice eseguito, situato dopo il punto interrogativo ? . e il, cioè dopo il colon : – ignorato. altrimenti, se l'utente ha immesso 0, ignorato il codice che si trova tra ? e : , e il secondo codice viene eseguito. Ecco il risultato di un lavoro se introdotto 1:

тернарный оператор ?:

se 0:

тернарный оператор ?:

Ecco un altro esempio interessante. esso, utilizzando l'operatore ternario, determinato numero minimo e massimo dei due valori, che presenterà all'utente.

Si consideri la linea di 20. Il codice verrà eseguito come – prima esecuzione per l'operatore ternario, restituirà un valore in base allo stato di fornitura, e dopo che il valore viene scritto nella variabile max. Se la condizione (firstDigit > secondDigit) – verità, senso firstDigit registrato nel max , se falso, il valore registrato secondDigit. Inoltre, si deve comprendere tutti. Kompiliruem:

тернарный оператор ?:

Il programma funziona bene!

Un po 'su l'operatore ternario è raccontata in questo video tutorial (15-verbale). oltre a, si rivolge lo stesso operatore scelta multipla interruttore (17-verbale) e istruzioni condizionali Se e altro




infine, aggiungere, non è consigliabile ad alcuni accordi sulla codifica di utilizzare l'operatore ternario, perché, riduce la leggibilità del codice. Ma è necessario sapere su, dal momento che nessuno può prevedere, ciò che i codici bisogno di trovare e leggere il futuro. Convenzioni di codifica più lunghi si possono trovare nel nostro articolo La formattazione del codice sorgente.

Diresti “grazie” autore? – Condividi questo articolo con i tuoi amici. Per fare questo, fare clic sul suo pulsante social network di sotto di questo articolo. Sarò lieto! :)

Newsletter nuove lezioni:


Accetto di ricevere messaggi da purecodecpp.com sulla mia e-mail

data
pagina
L'operatore ternario ? : in C ++
valutazione
5

5 pensieri su "L'operatore ternario ? : in C ++

  1. IMHO dovrebbe essere aggiunto, che non tutte le Convenzioni di codifica generalmente sono autorizzati a utilizzare l'operatore ternario, tk. spesso cade facile leggibilità del codice.

    come questo:

    sicuramente di meglio da fare.
    1) Hai variabile – una variabile di tipo bool, == Pertanto variabile 1 è sostituito da una variabile.
    2) Fai a confrontare le variabili booleane con intero, si può confondere altri programmatori.
    3) Secondo alcuni accordi sulla codifica rispetto alla parità deve essere un'espressione costante nel lato sinistro (non è riuscito a scrivere variabile = 1 variabile вместо == 1, tk. 1 = Variabile genererà un errore in fase di compilazione).
    4) Avrei scritto come:

    Un certo numero di compagni consigliato di scrivere invece una variabile == true variabile, ma qui è possibile sostenere :).

    In generale, tutto il codice tale. Ce l'ho:

    sostituito come (su):

    quindi non ha senso effettuare un confronto 2 volte e non ha senso di prendere la condizione tra parentesi

    L'ultimo esempio mostra, che il colon non è condivisa da una squadra e l'altra squadra (come la tua figura), e di espressione. Inoltre, vorrei ricordare, che l'operatore virgola restituisce lo stesso valore.

    1. rrrFer (aka Vladimir), è fantastico, che si rileggere così attentamente il nostro articolo. Cosa puoi dire al tuo commento? Dirò questo – migliorare e ottimizzare il codice può essere fino a infinito. A causa dei tuoi lettori vedranno il commento, lo stesso compito può essere risolto in modi diversi e che ci sono diverse opzioni per trattare con le variabili bulevksimi. Nel tuo caso è il codice più ottimizzato. Ma il mio codice è dipinto in modo più dettagliato (così ci si concentra principalmente sulla nuovi arrivati) analogamente,, come il tuo codice, Egli ha il diritto alla vita.
      P.S. Giuramento dei vostri commenti eliminati e in futuro non vorrebbero vedere

      1. emmm… I miei commenti imprecavano? )

        Non ho nemmeno riletto articoli, Ho guardato il disegno e il codice sorgente.

        Il punto qui non è nell'ottimizzazione, e potenziali stipiti, che non apparirà mai se si seguono alcuni accordi.

        Ebbene, per esempio, Quando si confronta una variabile booleana per un intero, cosa sta succedendo? – E 'intenzione di portare un bool a int, mentre fissato nello standard, che corrisponde alla vera unità, а falso – zero. Ma se un intero cast a bool, il 2 == True sarebbe quella di restituire true (ma non è, Anche se tutti i tipi di studenti e scolari può mettere in dubbio, perché non hanno lettura standard).

        Circa l'accordo, ho scritto al, ci sono insidie. Per esempio, una volta che si scrive una classe di numeri complessi e ricaricarla per un operatore di confronto, e l'operatore di cast al tipo bool. credo che, che può ricevere un comportamento diverso e pericolosa in questo caso. vale a dire. corretto paragonare le variabili dello stesso tipo, e si aspetta che essa proietta automaticamente.

        credo che, che l'enfasi dovrebbe essere fatto su un caso, quando è necessario usare l'operatore ternario, vale a dire. quando è utile. Senza di essa, tutto si può fare, ma è zucchero sintattico, che sono spesso gli allievi abusati e studenti. scrivere in questo modo su:

        Abbiamo un accordo a casi di codifica sono state elencate in cui l'operatore è autorizzato ad utilizzare al fine di evitare che tale codice qui.

      2. Siamo pienamente d'accordo, senza che l'operatore ternario può fare in programmazione. Ma devi sapere, tale che c'è, quello che sembra e come funziona. Non si sa mai, codice di alcune persone di aver letto e che non ci sarà utilizzata.

Lascia un Commento

Inserire il codice nei tag: <pre class="lang:C ++ decodifica:true ">IL TUO CODICE</pre>