web-dev-qa-db-fra.com

Vérifier si une variable est comprise entre deux nombres avec Java

J'ai un problème avec ce code:

if (90 >>= angle =<< 180)

L'explication de l'erreur est la suivante:

Le côté gauche d'une affectation doit être une variable.

Je comprends ce que cela signifie, mais comment puis-je transformer le code ci-dessus en code correct?

4
matthijsW

Je vois des erreurs dans votre code.
Vous vouliez probablement dire le terme mathématique 

90 <= angle <= 180, c'est-à-dire angle compris entre 90 et 180.

if (angle >= 90 && angle <= 180) {

// do action
}
26
AlexWien

<<= est comme +=, mais pour un décalage à gauche. x <<= 1 signifie x = x << 1. C'est pourquoi 90 >>= angle n'analyse pas. Et, comme d’autres l’ont dit, Java n’a pas de syntaxe élégante pour vérifier si un nombre est un intervalle; vous devez donc le faire très longtemps. Il ne peut pas non plus fonctionner avec if (x == 0 || 1), et vous êtes coincé pour l'écrire sur le long chemin.

2
David Ehrmann

vous écrivez du code Java pour Android? Dans ce cas, vous devriez écrire peut-être 

if (90 >= angle && angle <= 180) {

en mettant à jour le code dans un style plus agréable (comme certains le suggèrent), vous obtiendriez:

if (angle <= 90 && angle <= 180) {

maintenant, vous voyez que le second contrôle est inutile ou vous avez peut-être confondu les signes < et > dans le premier contrôle et que vous vouliez réellement

if (angle >= 90 && angle <= 180) {
2
peter
//If "x" is between "a" and "b";

.....

int m = (a+b)/2;

if(Math.abs(x-m) <= (Math.abs(a-m)))

{
(operations)
}

......

// doit utiliser des conversions en virgule flottante si la somme n'est pas égale;

Exemple simple:

//if x is between 10 and 20

if(Math.abs(x-15)<=5)
1
Mchrom

En supposant que vous programmez en Java, cela fonctionne:

if (90 >= angle  &&  angle <= 180 )  {

(Ne voulez-vous pas dire que 90 est moins que angle? Si oui: 90 <= angle)

0
aliteralmind