= vs. == v booleovských výrazech
== znamení jedná o problém v C, protože každou chvíli, a pak můžete zapomenout a zadejte jen = v logický výraz. Jedná se o jednoduchý, aby se chyba, ale překladač je velmi důležitý rozdíl. C bude přijímat buď = a == v logický výraz - chování programu výrazně mění mezi těmito dvěma, ale
logické výrazy vyhodnotit na celá čísla v C, a celá čísla mohou být použity uvnitř booleovských výrazů. , Celočíselná hodnota 0 v C je False, zatímco jakýkoliv jiný celočíselná hodnota je True. Následující je legální v C:
Pokud je něco jiného než 0, příkaz printf dostane popraven
V jazyce C, prohlášení, jako v případě (a = b) znamená, " Přiřadit. b k a, a potom zkoušce A na její booleovskou VALUE ".; Takže pokud se stane 0, if je False; jinak, to je pravda. Se hodnota změn v procesu. To není zamýšlené chování, pokud jste chtěli zadat == (i když tato funkce je užitečná při správném použití), takže buďte opatrní s vašimi = a == Využití
Looping: a. V reálném Příklad
Pojďme říkají, že byste chtěli vytvořit program, který vytiskne převodní tabulku Fahrenheit-to-Celsia. To lze snadno provést pomocí smyčky for nebo while:
#include < stdio.h > int main () {int a; a = 0; přičemž (a < = 100) {printf ("% 4d ° F =% 4d ° C \\ N '';, a, (a - 32) * 5/9); a = a + 10; } Return 0;}Pokud spustíte tento program, to bude produkovat tabulku hodnot začíná na 0 stupňů C a končí při 100 ° F. Výstup bude vypadat takto:
0 stupňů F = -17 ° C 10 ° F = -12 stupňů C 20 stupňů F = -6 ° C 30 ° F = -1 ° C 40 stupňů F = 4 ° C 50 stupňů F = 10 ° C 60 ° F = 15 ° C 70 stupňů F = 21 stupňů C 80 ° F = 26 stupňů C 90 stupňů F = 32 ° C 100 ° F = 37 ° CHodnoty v tabulce jsou v přírůstcích 10 stupňů. Můžete vidět, že můžete snadno změnit počáteční, ukončení nebo přírůstek hodnoty v tabulce, že program produkuje
Pokud byste chtěli své hodnoty, aby se více přesné, můžete použít plovoucí čárkou místo:.
#include < stdio.h > int main () {float a; a = 0; přičemž (a < = 100) {printf ("% 6.2f ° F =% 6.2f ° C \\ N '';, a, (a - 32,0) * 5,0 /9,0); a = a + 10; } Return 0;}Můžete vidět, že prohlášení týkající se změnila na plováku, a symbol% f nahradí d symbol% v příkazu printf. Kromě toho, symbol% f má nějaký formátování použité na ni: Hodnot