Version imprimable du sujet

Cliquez ici pour voir ce sujet dans son format original

OpenSpace _ Programmation _ Fonction And

Ecrit par: Poischack 09/10/2002 21:14

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.

Ecrit par: jmb 09/10/2002 21:20

et avec "&&" à la place de "and" ?

Ecrit par: Guepi 09/10/2002 21:45

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 : http://www.infini-fr.com/Sciences/Informatique/Langages/Imperatifs/Java/java.html

Ecrit par: Poischack 09/10/2002 21:47

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

Ecrit par: Gfx 14/10/2002 9:59

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)

Ecrit par: Poischack 14/10/2002 19:28

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 ....

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)