Loading...
Pages: [1]   Go Down
Author Topic: istruzione sconosciuta  (Read 301 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset


Salve a tutti
 Sono nuovo per Arduino,ma non proprio a digiuno di nozioni informatiche ne elettroniche.
 Guardando qualche tutorial in giro sul web , aspettando che mi arrivi il mio primo Arduino UNO ,sono incappato in   una riga di codice cosi strutturata

     (code[5]==checksum) ? check = true : check = false ; 

dove
    boolean check;
    byte code[6];
    byte checksum;


credevo che fosse un forma abbreviata di IF ma ho fatto delle prove con un simulatore e no mi sembra,
qualcuno sa aiutarmi ?  grazie .


Logged

Forum Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 219
Posts: 16431
Don't know what I do
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset


Salve a tutti
 Sono nuovo per Arduino,ma non proprio a digiuno di nozioni informatiche ne elettroniche.
 Guardando qualche tutorial in giro sul web , aspettando che mi arrivi il mio primo Arduino UNO ,sono incappato in   una riga di codice cosi strutturata

     (code[5]==checksum) ? check = true : check = false ; 

dove
    boolean check;
    byte code[6];
    byte checksum;


credevo che fosse un forma abbreviata di IF ma ho fatto delle prove con un simulatore e no mi sembra,
qualcuno sa aiutarmi ?  grazie .



E' un if condizionale abbreviato.
E' l'equivalente di
Code:
if (code[5]==checksum) {
  check = true;
} else {
  check = false;
}
Logged


Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ok grazie o ricontrollato con il simulatore ed è proprio cosi
Logged

Cagliari
Offline Offline
Faraday Member
**
Karma: 49
Posts: 2998
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Si tratta di un operatore ternario --> http://www.html.it/pag/15404/controlli-condizionali-switch-e-operatori-ternari/

Quel codice potresti trovarlo anche scritto così:
Code:
check = (code[5]==checksum) ? true : false ;
Logged

IDE 1.0.4 - Arduino UNO R3 - Ethernet Shield R3 - DCF77 Module - Adafruit Data Loggin Shield - LCD 16x2 RGB positive backlight - i2c LCD backpack - RTC 1307 Board - Saleae Compatibile Logic Analyzer 8ch 24Mhz - ATtiny2313 ProtoBoard - Xino Board - ATtiny 4313 - Arduino 2009 - Arduino USB Serial Ligth - DS18B20 - LM35DZ - ShiftRegister - TL431 - ATtiny 85
Ultimi acquisti:
CodeBender: http://codebender.cc/register/?referrer=PaoloP

Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ok PaoloP ho dato un occhiata al tuo link,  ed è stato molto utile. ciao
Logged

Roma (RM)
Offline Offline
God Member
*****
Karma: 3
Posts: 634
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Se proprio vogliamo dirla tutta basterebbe scrivere:

check = (code[5]==checksum);
Logged


MC
Offline Offline
God Member
*****
Karma: 9
Posts: 668
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Nel caso di semplice booleano si, ma l'operatore ternario può essere usato anche per restituire dati più complessi, o addirittura altre condizioni annidiate.
Logged

Vi è una spiegazione scientifica a tutto.
La fede è solo quell'anello che si porta al dito dopo il matrimonio.

Roma (RM)
Offline Offline
God Member
*****
Karma: 3
Posts: 634
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Si certo ma se il caso è questo....
Logged


Pages: [1]   Go Up
Print
 
Jump to: