GNU/Linux >> Znalost Linux >  >> Linux

Výukový program programování v Linuxu C Část 12 – Operátory přiřazení a podmíněné výrazy

V této pokračující sérii výukových programů programování v C jsme již diskutovali o některých základních věcech, jako jsou aritmetické, logické a relační operátory a také podmíněné smyčky jako 'if' a 'while'. Kromě toho se tento tutoriál zaměří na operátory přiřazení (jiné než =) a podmíněné výrazy.

Začněme operátory přiřazení. Pokud jste dosud vytvářeli základní programy v C (což jsem si jist, že byste to udělali zejména po sledování naší série tutoriálů), je vysoká pravděpodobnost, že byste udělali něco podobného následujícímu:

a = a + 1;

Správně?

Nová věc, kterou se dnes naučíme, je, že tento výraz můžete přepsat následovně:

a += 1;

Ano,  +=je operátor a nazývá se také operátor přiřazení.

Nyní, když řeknu, že pomocí operátorů přiřazení, jako jsou tyto, je kód kompaktnější a čitelnější, někteří z vás mohou namítnout, že v kontextu příkladu, který jsme použili, by byl operátor přírůstku stejně dobrý, protože také zajišťuje hodnotu „a“. ' se zvýší o 1.

a++;

Souhlasím, ale představte si jiné scénáře, jako je tento:

b = b + 10;
b = b + c

V těchto případech použití operátoru přiřazení rozhodně usnadňuje psaní, čtení a kontrolu kódu v jednom kroku.

Stále nejste přesvědčeni? Možná vám následující obecný příklad poskytne ještě lepší představu o hodnotě operátorů přiřazení. Podívejte se:

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

Porozumění tomuto řádku kódu chvíli trvá, protože se musíte ujistit, že dvě pole (na každé straně operátoru =) odkazují na stejnou hodnotu nebo ne. V tomto případě ano, takže lepší způsob by bylo použít operátor přiřazení následujícím způsobem:

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

Takže použití operátoru přiřazení v tomto případě nejen učinilo řádek velmi snadno pochopitelným, ale také jej učinilo více kompilátorovým v tom smyslu, že může pomoci kompilátoru vytvářet efektivní kód.

Nyní, když jste přesvědčeni (opravdu doufám, že ano) o tom, že operátory přiřazení jsou užitečné, zde je seznam operátorů, které mají odpovídající binární operátor:

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

Prvních pět operátorů v seznamu jsme již probrali v našich tutoriálech. Posledních pět jsou bitové operátory a budeme o nich diskutovat v jednom z našich nadcházejících tutoriálů. Mezitím je zde rychlý odkaz na operátory přiřazení odpovídající některým z těchto operátorů:

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

Obecně tedy můžete mít na paměti, že následující:

expression1 = (expression1) op (expression2)

lze vyjádřit jako:

expression1 op= expression2

kde 'op' je používaný operátor, například +, -, * a další.

Vezměte prosím na vědomí, že následující výraz a jemu podobné výrazy:

a *= b - c 

se rozbalí jako:

a = a * (b-c)

Doufám, že se mi alespoň na základní úrovni podařilo objasnit koncept operátorů přiřazení. Pokračujeme, nyní rychle probereme podmíněné výrazy.

Vezměte si následující příklad:

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

Podmíněné výrazy vám pomohou napsat podobné logiky na jeden řádek. Zde je postup:

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

Zde se tedy nejprve zkontroluje podmínka (a==b). Pokud je to pravda, pak (c+1) je přiřazeno c, jinak (c-1) je přiřazeno c. Zde je ukázkový kód, aby byly věci jasnější:

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

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

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

return 0;
}

Protože a zde není rovno b, je přiřazeno c (c-1), což znamená, že nová hodnota c bude 8. Pro případ, že byste potřebovali, zde je obecná forma podmíněných výrazů:

expression1 ? expression2 : expression3

Doufám, že máte základní představu o operátorech přiřazení a podmíněných výrazech. Nyní vás vyzýváme, abyste je používali ve svých každodenních činnostech kódování, a pokud narazíte na jakýkoli problém, nezapomeňte nám zde zanechat komentář.


Linux
  1. Linux nice and renice Command Tutorial (7 příkladů)

  2. C Výukový program programování 4 - Proměnné a paměť

  3. C Výukový program programování Část 3 - Základy proměnných

  1. C Výukový program programování Část 5 - Znakové proměnné

  2. Výukový program programování v Linuxu C Část 10 - Variabilní rozsahy

  3. Výukový program programování v Linuxu C Část 9:Řetězce

  1. Výukový program programování Linux C, část 8 – Volání podle hodnoty versus volání podle ukazatele/adresy

  2. Výukový program programování Linux C, část 8 – Volání podle hodnoty versus volání podle ukazatele/adresy

  3. Výukový program programování Linux C, část 8 – Volání podle hodnoty versus volání podle ukazatele/adresy