Help - Search - Member List - Calendar
Full Version: Fonction And
OpenSpace > Zone Ordinateurs > Programmation
Poischack
je commence à peine la programmation en java, venant du python j'ai pris l'habitude te taper des trucs du genre:
CODE

a = "saut"
b = 1
if (a == "salut" and b == 1):
       print "test"

en voulant taper un truc du genre en java, ça a merdé ... :
CODE

class test {
   public static void main(String[] arguments) {
       String a = "saut";
       int b = 1;
       if (a == "salut" and b == 1) {
           System.out.println("test");
       }
   }
}

ça me donne:
QUOTE

test.java [20:1] ')' expected
       if (a == "salut" and b == 1) {
                        ^
test.java [23:1] illegal start of expression
   }
   ^
test.java [22:1] ';' expected
       }
        ^
3 errors
Errors compiling test.


il n'existe pas de and en java ? j'ai beau rearder mon bouquin il indique rien dessus ...

PS: faite pas attention au numéro de ligne indiqué, j'ai enlevé 2-3 lignes de commentaires.
jmb
et avec "&&" à la place de "and" ?
Guepi
QUOTE

(...)
Les expressions booléennes
De même qu'il existe des expressions qui calculent des résultats numériques, il en existe qui calculent des résultats booléens (c'est à dire un résultat pouvant être interprété soit comme vrai, soit comme faux). Il existe donc des opérateurs booléens nécessaires à la construction des ces expressions. Nous y trouvons notamment des prédicats (autre façon de nommer ces opérateurs) de comparaison numérique (==, il en existe autant que de types numériques et des conversions peuvent exister), de différenciation (!=), d'infériorité (strictes (<) ou non (<="))," de supériorité (> et >=). Nous trouvons aussi le ou logique (||) et le et logique (&&) qui prennent tous deux des opérandes booléennes. Il existe encore l'opérateur unaire (qui prend uniquement une seule opérande) de négation (!).
(...)


Extrait de : un cours sur java ...
Poischack
merci beaucoup (j'y pensais plus à celui là) ...
Edit: je viens de vérifier et ça marche ...



Gfx
Heu y'a un autre problème :
a == "hello"
teste si la référence "a" à la même valeur (donc même adresse en mémoire) que la référence à chaîne "hello". Par un subtil jeu interne de la JVM (les fameuses String "intern") il arrive que le test fonctionne. Mais bien souvent, ça foirera !
Il faut donc faire :
if (a.equals("hello"))
ou encore mieux pour éviter les NPE (NullPointerException) :
if ("hello".equals(a))

Et voilà smile.gif) Et le and c'est bien le &&, le or c'est le || et le not, c'est le ! (les &, <<, >> et | restent les mêmes)



Poischack
merci, ça rulez maintenant, mais j'ai à nouveau une question:
on peut pas faire:
CODE
print "test\n" * 20
?

rha c'est un schouilla plus simple le python ....
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2024 Invision Power Services, Inc.