Pages: [1]   Go Down
Author Topic: istruzione sconosciuta  (Read 639 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 5
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

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 325
Posts: 22498
Logic is my way
View Profile
WWW
 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: 5
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Cagliari, Italy
Online Online
Tesla Member
***
Karma: 109
Posts: 6973
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

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Offline Offline
Newbie
*
Karma: 0
Posts: 5
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: 14
Posts: 917
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
Jump to: