Aide boucle While Encore ?? je pete un cable ... :'(

Aide boucle While Encore ?? je pete un cable ... :'( - Java - Programmation

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

Reply

Marsh Posté le 29-10-2008 à 23:37:36   

Reply

Marsh Posté le 30-10-2008 à 08:26:34    

pourquoi le comportement de '=' serait différent entre

Code :
  1. String a="oui";


et

Code :
  1. while(a = "oui" ){ ... }


?


Message édité par brisssou le 30-10-2008 à 08:26:58

---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
Reply

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.


---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
Reply

Marsh Posté le 30-10-2008 à 08:57:50    

kao98 a écrit :

En java, la comparaison, c'est pas comme en C ?


et si...


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

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.


Message édité par baobab95210 le 30-10-2008 à 09:50:44
Reply

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 ?


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
Reply

Marsh Posté le 30-10-2008 à 11:44:31    

Hints : la comparaison de String, c'est equals(), et les String java sont immutables.

Reply

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 '==') ?

Message cité 1 fois
Message édité par astrojojo le 30-10-2008 à 14:25:45
Reply

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?  
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 '==') ?


 
Complètement. Le rapport c'est que je trouve ça crade :D
 

Reply

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

Reply

Marsh Posté le 30-10-2008 à 14:44:52   

Reply

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 :
  1. while (Deug.readString().equals("oui" )) {}
 

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 [:dawa]

Message cité 1 fois
Message édité par LeRiton le 30-10-2008 à 15:06:17
Reply

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


Message édité par astrojojo le 30-10-2008 à 15:05:04
Reply

Marsh Posté le 30-10-2008 à 15:09:32    

[:ddr555]  
 
J'te dis pas de rien mettre dans le bloc, je donnais juste l'exemple de la condition pour ta boucle.

Reply

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 == ??

Reply

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 :

 
Code :
  1. while (Deug.readString().equals("oui" )) {}



Faut pas que readString puisse renvoyer null par contre :o

 

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 :o

baobab95210 a écrit :

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 == ??


C'est sûrement marqué dans ton cours


Message édité par masklinn le 30-10-2008 à 21:29:07

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

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 ?

Reply

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 ?

Reply

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 ?

Reply

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 :o


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

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


Message édité par astrojojo le 30-10-2008 à 21:54:30
Reply

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 :o

 

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é :o

Spoiler :

enfin si, par défaut l'égalité est définie comme l'idendité si on ne surdéfinit pas l'opérateur naturellement

Message cité 1 fois
Message édité par masklinn le 30-10-2008 à 21:56:07

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

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

Reply

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?


Message édité par masklinn le 30-10-2008 à 22:05:01

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 30-10-2008 à 22:05:11    

masklinn a écrit :


Ben non sinon il n'aurait pas le problème :o


C'était pour être sur :o.

 


masklinn a écrit :


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é :o


Justement y'a pas de surcharge en java :??:

  


Message cité 1 fois
Message édité par astrojojo le 30-10-2008 à 22:08:00
Reply

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 ;


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 30-10-2008 à 22:07:47    

masklinn a écrit :


Ben oui mais ça n'a de rapport qu'avec java, pas avec tout le reste ;


 
ok (le ';' à la fin de la phrase, j'adore  [:megaseifer] )

Reply

Marsh Posté le 30-10-2008 à 22:09:34    

astrojojo a écrit :

 

ok (le ';' à la fin de la phrase, j'adore  [:megaseifer] )


S'pasque je regarde/écoute http://www.youtube.com/watch?v=f_0QlhYlS8g&fmt=6 en même temps et ça me trouble [:thalis]

Message cité 1 fois
Message édité par masklinn le 30-10-2008 à 22:09:55

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 30-10-2008 à 22:14:28    

masklinn a écrit :


S'pasque je regarde/écoute http://www.youtube.com/watch?v=f_0QlhYlS8g&fmt=6 en même temps et ça me trouble [:thalis]


 
De quoi m'occuper demain au boulot cette vidéo [:transparency]  

Reply

Marsh Posté le 30-10-2008 à 22:16:24    

astrojojo a écrit :

De quoi m'occuper demain au boulot cette vidéo [:transparency]  


Fais gaffe, c'est brain-unsafe


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

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 !

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed