Quel comportement pour ce programme


bonjour,

j'ai une petite question de théorie.

si j'ai un algo comme ça :

code: [select]

const int cas1 = 1;
const int cas2 = 2;

static int state = cas1;
int flag;
int x; //supposons qu'il prenne la valeur d'un caractère sur le bus série qui peut être soit 0 soit 1.

void getdata(){
  if (x ==0){
    flag = 0;
    return;
  }else{
    flag = 1;
    return;
  }
}

void setup(){
}

void loop(){

  switch(state) {
    case cas1 :
    while(1){
      getdata(x);
      if (flag ==0){
        serial.println('0');
        state = cas2;
        break;
      }else{
        serial.println('1');
        state = cas2;
        break;
      }
    }
    case cas2 :
    //autre état
  }
}



je sors de la fonction getdata dans tous les cas avec "return".
et je sors de cas1 dans tous les cas avec un break.

en théorie je vais sur cas2 ?
merci

bonjour

oui. ici, les « break » permettent juste de sortir du « while(1) ». la suite du « switch ... case » doit donc être exécutée normalement, et en l'absence d'autre « break » on passe au code situé sous le « case cas2 ».


toutefois, je préfère signaler que, dans cet environnement de développement particulier, la dernière option du « switch ... case » ne doit pas être vide. si l'on n'y fait rien, alors il faut au minimum y trouver un « break ».


Arduino Forum > International > Français (Moderators: jfs, Snootlab) > Quel comportement pour ce programme


arduino

Comments

Popular posts from this blog

Flip address is out of range arduino uno r3

Arduino Uno not uploading

Indesign and MathType fonts