Pages: [1]   Go Down
Author Topic: Switch case et inertevalles  (Read 1753 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Full Member
***
Karma: 0
Posts: 207
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

Je voudrais faire du switch case sur des intervalles.

exemple :

soit une variable var qui peut varier de 100 à 1200
si var compris entre 100 et 200 =>action1
si var compris entre 201 et 500 =>action2
si var compris entre 501 et 1200 =>action3

Quelle syntaxe faut-il ?

le code de base est :
 switch (var) {
    case 1:
      //do something when var equals 1
      break;
    case 2:
      //do something when var equals 2
      break;
    default:
      // if nothing else matches, do the default
      // default is optional
  }
mais dans mon cas, comment faire ?

 switch (var) {
    case (>=100 && <=200):
      //action1
      break;
    case (>200 && <=500):
      //action2
etc...
  }

?????

Merci !
Logged

Namur, Belgique
Offline Offline
Newbie
*
Karma: 0
Posts: 41
Domoduino!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

Le switch-case ne fonctionne qu'avec un ensemble de valeurs définies, il n'est pas possible d'avoir un test dans le case.

Pour faire des tests d'intervalles, il faut utiliser des if - else if ...

Pour reprendre ton example :

soit une variable var qui peut varier de 100 à 1200
si var compris entre 100 et 200 =>action1
si var compris entre 201 et 500 =>action2
si var compris entre 501 et 1200 =>action3

Code:
if (var>=100)
{
   if (var<=200)
   {
       // action 1
   }
   else if (var<=500)
   {
      // action 2
   }
   else if (var<=1200)
   {
      // action 3
   }
}

Il y a d'autres façons d'ordonner les tests, mais celui-ci à comme avantage de ne faire chaque test qu'une fois.

++
Logged

0
Offline Offline
Full Member
***
Karma: 0
Posts: 207
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

arf, cest bien ce que je pensais mais jaurai bien aimé un swtich case pour faire qque chose de proprose mais en même temps ce que tu proposes ma plait aussi
Logged

Sophia-Antipolis (06)
Offline Offline
God Member
*****
Karma: 4
Posts: 618
Rejoignez le club !
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Un conseil, ne regarde pas que la façon dont le code est écrit, mais aussi le gain en temps, en ressources, etc.. Tu bosses sur un micro-contrôleur, pas un serveur web smiley

Logged

Pages: [1]   Go Up
Jump to: