GNU/Linux >> Linux Esercitazione >  >> Linux

Esercitazione sulla programmazione C Linux Parte 12 - Operatori di assegnazione ed espressioni condizionali

In questa serie di tutorial sulla programmazione C in corso, abbiamo già discusso alcune delle cose di base come gli operatori aritmetici, logici e relazionali, nonché i cicli condizionali come "se" e "mentre". In aggiunta, questo tutorial si concentrerà sugli operatori di assegnazione (diversi da =) e sulle espressioni condizionali.

Cominciamo con gli operatori di assegnazione. Se fino ad ora hai creato programmi C di base (cosa che sono sicuro avresti fatto soprattutto dopo aver seguito la nostra serie di tutorial), ci sono alte probabilità che avresti fatto qualcosa di simile al seguente:

a = a + 1;

Giusto?

La novità che impareremo oggi è che puoi riscrivere questa espressione come segue:

a += 1;

Sì,  +=è un operatore ed è anche chiamato operatore di assegnazione.

Ora, se dico che l'utilizzo di operatori di assegnazione come questi rende il codice più compatto e leggibile, alcuni di voi potrebbero obiettare che nel contesto dell'esempio che abbiamo utilizzato, un operatore di incremento sarebbe stato ugualmente valido in quanto assicura anche il valore di 'a ' viene aumentato di 1.

a++;

Sono d'accordo, ma pensa ad altri scenari come il seguente:

b = b + 10;
b = b + c

In questi casi, l'utilizzo dell'operatore di assegnazione semplifica notevolmente la scrittura, la lettura e la revisione del codice.

Non sei ancora convinto? Forse, il seguente esempio generico ti darà un'idea ancora migliore sul valore degli operatori di assegnazione. Dai un'occhiata:

arr1[arr2[integer1 + integer2] + arr3[integer3 + integer4] + arr4 [integer5 + integer6]] = arr1[arr2[integer1 + integer2] + arr3[integer3 + integer4] + arr4 [integer5 + integer6]] + 5 

Questa riga di codice richiede tempo per essere compresa in modo specifico perché devi assicurarti che i due array (su ciascun lato dell'operatore =) facciano riferimento allo stesso valore o meno. In questo caso, lo fanno, quindi un modo migliore sarebbe usare un operatore di assegnazione nel modo seguente:

arr1[arr2[integer1 + integer2] + arr3[integer3 + integer4] + arr4 [integer5 + integer6]] += 5;

Quindi, l'utilizzo di un operatore di assegnazione in questo caso non solo ha reso la riga molto facile da capire, ma l'ha anche resa più intuitiva per il compilatore, nel senso che può aiutare il compilatore a produrre codice efficiente.

Ora che sei convinto (spero davvero che tu lo faccia) del fatto che gli operatori di assegnazione sono utili, ecco un elenco di operatori che hanno un operatore binario corrispondente:

+ - * / % << >> & ^ |

I primi cinque operatori nell'elenco che abbiamo già discusso nei nostri tutorial finora. Gli ultimi cinque sono operatori bit per bit e ne parleremo in uno dei nostri prossimi tutorial. Nel frattempo, ecco un rapido riferimento agli operatori di assegnazione corrispondenti ad alcuni di questi operatori:

a += b;
a -= b;
a *= b;
a /= b;
a %= b;

Quindi, in generale, puoi tenere presente che quanto segue:

expression1 = (expression1) op (expression2)

può essere espresso come:

expression1 op= expression2

dove 'op' è l'operatore in uso, come +, -, * e altro.

Si prega di notare che la seguente espressione così come espressioni simili ad essa:

a *= b - c 

si espanderà come:

a = a * (b-c)

Spero di essere stato in grado di chiarire almeno a livello base il concetto di operatori di assegnazione. Andando avanti, ora discutiamo rapidamente delle espressioni condizionali.

Prendi il seguente esempio:

if(a==b)
c = c + 1;
else
c = c - 1;

Le espressioni condizionali ti aiutano a scrivere logiche come queste in un'unica riga. Ecco come:

c = (a==b) ? (c+1) : (c -1)

Quindi qui, prima viene verificata la condizione (a==b). Se è vero, allora (c+1) viene assegnato a c, altrimenti (c-1) viene assegnato a c. Ecco un codice di esempio per rendere le cose più chiare:

int main()
{
int a = 6, b = 5, c = 9;

c = (a==b) ? (c+1) : (c -1) ;

printf("\n %d \n", c);

return 0;
}

Poiché a non è uguale a b qui, quindi c è assegnato (c-1), il che significa che il nuovo valore di c diventa 8. Per ogni evenienza, ecco la forma generica delle espressioni condizionali:

expression1 ? expression2 : expression3

Spero che tu abbia un'idea di base sugli operatori di assegnazione e sulle espressioni condizionali. Ora sei incoraggiato a usarli nelle tue attività di codifica quotidiane e, se incontri qualsiasi tipo di problema, non dimenticare di lasciarci un commento qui.


Linux
  1. C Tutorial di programmazione Parte 5 - Variabili di carattere

  2. Esercitazione sulla programmazione C Linux Parte 10 - Ambiti variabili

  3. Esercitazione sulla programmazione C Linux Parte 9:Stringhe

  4. Esercitazione sulla programmazione C Linux Parte 8 - Chiamata per valore Vs Chiamata per puntatore/indirizzo

  5. Esercitazione sulla programmazione C Linux Parte 8 - Chiamata per valore Vs Chiamata per puntatore/indirizzo

5 interessanti suggerimenti e trucchi per la riga di comando in Linux - Parte 1

Come confrontare e unire file di testo su Linux (parte 2)

Tutorial di programmazione C Parte 3 - Nozioni di base sulle variabili

Come installare e utilizzare KompoZer in Linux - Tutorial

Come installare e utilizzare Kerkythea in Linux - Tutorial

Utilizzo di sed per trovare e sostituire file di testo in Linux