Aide boucle While Encore ?? je pete un cable ... :'( - Java - Programmation
Marsh Posté le 30-10-2008 à 08:26:34
pourquoi le comportement de '=' serait différent entre
Code :
|
et
Code :
|
?
Marsh Posté le 30-10-2008 à 08:32:48
En java, la comparaison, c'est pas comme en C ?
Si c'est bien le cas, alors '=' != '==' !
'=', c'est l'opérateur d'afectation.
'==', c'est l'opérateur de comparaison.
Marsh Posté le 30-10-2008 à 08:57:50
kao98 a écrit : En java, la comparaison, c'est pas comme en C ? |
et si...
Marsh Posté le 30-10-2008 à 09:49:28
en réalité c'est moi qui me suis trompé !
c'est String a = "oui";
et while ( a == "oui" ) car dans la parenthése du while c'est un boolean.
mais cela ne marche pas quand meme, quand je dis que je me suis trompé c'est en recopiant le code ici, le code d'origine que j'ai tapé était bon a ce niveau la.
Marsh Posté le 30-10-2008 à 10:17:23
c'est pas clair.
poste ton vrai code.
Sinon, les String, c'est des Object. Ton prof a dû vous expliquer à quoi correspondait '==' pour des Object, non ?
Marsh Posté le 30-10-2008 à 11:44:31
Hints : la comparaison de String, c'est equals(), et les String java sont immutables.
Marsh Posté le 30-10-2008 à 14:25:13
LeRiton a écrit : Hints : la comparaison de String, c'est equals() |
J'allais le dire.
LeRiton a écrit : les String java sont immutables. |
J'arrive pas à voir le rapport ? On peut très bien faire : String a = "abc"; a="def"; non?
Ca ne sera plus vraiment le même objet, mais ça reste la variable a qu'on peut toujours comparer non (avec equals() je veux dire, peut-être pas '==') ?
Marsh Posté le 30-10-2008 à 14:39:46
astrojojo a écrit : J'arrive pas à voir le rapport ? On peut très bien faire : String a = "abc"; a="def"; non? |
Complètement. Le rapport c'est que je trouve ça crade
Marsh Posté le 30-10-2008 à 14:44:52
Tu ferais quoi à la place? Je vois pas trop d'autre solution à part faire une ArrayList<String> pour ajouter une nouvelle variable à chaque tour (mais beurk aussi).
Marsh Posté le 30-10-2008 à 15:01:23
Je chipote hein. Juste qu'à mon sens, la référence sert à rien. On veut "continuer tant que l'utilisateur tape "oui"", bin si je traduit bêtement, c'est :
Code :
|
Je critiquais pas le changement de référence mais son utilisation. Je chipote quoi.
Edit : et non, toujours pas de rapport avec le fait que les String soient immutables. Mais c'est une info toujours intéressante
Marsh Posté le 30-10-2008 à 15:03:57
Ah oui tout simplement, merci . (c'est bête mais j'ai du mal à penser à faire une boucle sans rien dans le bloc d'instructions). (mais il manque le println() ).
Marsh Posté le 30-10-2008 à 15:09:32
J'te dis pas de rien mettre dans le bloc, je donnais juste l'exemple de la condition pour ta boucle.
Marsh Posté le 30-10-2008 à 21:23:00
Bon pour mon exo ca marche !
par contre je n'avais jamais vu l'écriture .equal("oui" )
pourquoi cela ne marche pas avec un simple = ou deux == ??
Marsh Posté le 30-10-2008 à 21:28:13
LeRiton a écrit : Je chipote hein. Juste qu'à mon sens, la référence sert à rien. On veut "continuer tant que l'utilisateur tape "oui"", bin si je traduit bêtement, c'est :
|
Faut pas que readString puisse renvoyer null par contre
C'est pourquoi quand j'ai un littéral à tester contre une variable je met plutôt le littéral à gauche, pas de NPE possible comme ça
baobab95210 a écrit : Bon pour mon exo ca marche ! |
C'est sûrement marqué dans ton cours
Marsh Posté le 30-10-2008 à 21:43:24
ba ecoute sincérement si c'est marqué dans mon cours j'ai du le loupé ou ne pas entendre le prof mais comme je l'ai dit je suis assez attentif pendant les cours d'info.
Et puis on n'a jamais utilisé ca en TP. Je vais vérifier dans mon TD.
Si je ne l'est vraiment pas encore vu, il y a un autre moyen d'écrire ce programme ?
Marsh Posté le 30-10-2008 à 21:48:52
C'était forcément en java l'exo ? Vous avez vu les bases de la POO ? Les notions d'instance/référence te disent quelque chose ?
Marsh Posté le 30-10-2008 à 21:50:38
non cela ne me dit rien. Et oui nous n'écrivons qu'en java et rien d'autre. Je crois que le C/C++ vient dans les années suivantes je ne suis pas sur. Personne ne vient de paris 7 ?
Marsh Posté le 30-10-2008 à 21:51:22
astrojojo a écrit : C'était forcément en java l'exo ? Vous avez vu les bases de la POO ? Les notions d'instance/référence te disent quelque chose ? |
Non mais ça c'est spécifique à Java, ça n'a aucun rapport avec la POO ou les notions d'instance ou référence
Marsh Posté le 30-10-2008 à 21:53:09
Oui je sais, c'est juste pour savoir s'il sait ce que fait exactement le '==' ou ce que c'est une méthode.
edit:
baobab95210 a écrit : non cela ne me dit rien. Et oui nous n'écrivons qu'en java et rien d'autre. Je crois que le C/C++ vient dans les années suivantes je ne suis pas sur. Personne ne vient de paris 7 ? |
Voilà, je trouve pas ça top de commencer comme ça (c'est pas ta faute, c'est selon le programme prévu par les profs).
Marsh Posté le 30-10-2008 à 21:54:15
baobab95210, va lire http://java.sun.com/mailers/techti [...] 822.html#2
astrojojo a écrit : Oui je sais, c'est juste pour savoir s'il sait ce que fait exactement le '==' |
Ben non sinon il n'aurait pas le problème
Mais ça n'a toujours pas de rapport, dans les langages avec operator overloading "==" est toujours utilisé pour l'égalité et jamais pour l'identité
Spoiler : enfin si, par défaut l'égalité est définie comme l'idendité si on ne surdéfinit pas l'opérateur naturellement |
Marsh Posté le 30-10-2008 à 21:58:32
je viens de parcourir mon poly de TD et je n'ai pas vu marqué ca...
C'est quand meme con de nous donner des exos sans les outils ...
pour vous si ca vous interesse :
http://www.pps.jussieu.fr/~jch/ens [...] f1/tp5.pdf
Marsh Posté le 30-10-2008 à 22:03:55
baobab95210 a écrit : je viens de parcourir mon poly de TD et je n'ai pas vu marqué ca... |
Ca n'a aucune raison d'être dans le poly de TP, et apparement c'est votre 5e TP, vous avez bien eu des cours non?
Marsh Posté le 30-10-2008 à 22:05:11
masklinn a écrit :
|
C'était pour être sur .
masklinn a écrit :
|
Justement y'a pas de surcharge en java
Marsh Posté le 30-10-2008 à 22:06:01
astrojojo a écrit : Justement y'a pas de surcharge en java |
Ben oui mais ça n'a de rapport qu'avec java, pas avec tout le reste ;
Marsh Posté le 30-10-2008 à 22:07:47
masklinn a écrit : |
ok (le ';' à la fin de la phrase, j'adore )
Marsh Posté le 30-10-2008 à 22:09:34
astrojojo a écrit : ok (le ';' à la fin de la phrase, j'adore ) |
S'pasque je regarde/écoute http://www.youtube.com/watch?v=f_0QlhYlS8g&fmt=6 en même temps et ça me trouble
Marsh Posté le 30-10-2008 à 22:14:28
masklinn a écrit : |
De quoi m'occuper demain au boulot cette vidéo
Marsh Posté le 30-10-2008 à 22:16:24
astrojojo a écrit : De quoi m'occuper demain au boulot cette vidéo |
Fais gaffe, c'est brain-unsafe
Marsh Posté le 30-10-2008 à 22:55:02
ps j'ai bien marqué poly de TD et pas de TP, c'est donc mon cours, puisque j'ai aussi cours en amphi mais comment dire c'est loin....le prof nous a aujourd'hui montré pour la 3ieme fois de l'anné comment ecrire un nombre en base 10 en base 2 et 8 et 16...
Bref les seuls cour sur la programmation = TD et TP !
Marsh Posté le 29-10-2008 à 23:37:36
Bonjour !
Voici mon exercice :
Exercice 3. Ecrivez un programme Encore qui demande à l’utilisateur « encore ? », et qui continue de lui poser la question tant que celui-ci lui ré́pond « oui ».
Je dois dire qu'en cours je me débrouille assez bien, je suis le seul (je crois) à avoir entamer ce TP à la maison...Bref ! je voyais la chose simple, mais rien ne marche java pas du tout !!!
mon code :
import fr.jussieu.script.*;
public class Encore {
public static void main(String[] args) {
String a="oui";
while(a = "oui" ){
Deug.println("Encore???" );
a = Deug.readString();
}
}
}
j'ai essayer pleinnnnnnnns de choses comme :
import fr.jussieu.script.*;
public class Encore {
public static void main(String[] args) {
String a;
boolean b = true;
do {
Deug.println("Encore ?" );
a = Deug.readString;
if ( a = "oui" ){
b = true;
}
else {
b = false
}
}while(b = true )
}
}
rien ne marche, et d'ailleur avec le deuxieme code, j'ai éssayer un truc, j'ai demander d'afficher b, et il se trouve qu'il est tout le temps false !! meme quand je rentre oui. c'est pour cela que la boucle ne se fait pas ! ma question est alors POURQUOI ?? vraiment je ne comprend pas ! need help !
d'avance merci