Probleme avec java

Fermé
romain1 - 22 juin 2008 à 18:39
 romain1 - 23 juin 2008 à 12:59
Bonjour,
Si quelqu´un a la réponse (parce que moi je sais pas lol) exercice faire un programme (il est fait) mais ensuite inclure la formule do while pour qu'il puisse se répéter si tu veux (et la je bloque) merci de votre aide.

import java.lang.Math;
import java.util.Scanner;

public class dowhiletehtävä {

public static void main(String args [])
{

double sade;//circonférence
String vastaus;
do
{
Scanner scanner = new Scanner(System.in);
System.out.println("Anna säde: ");//donne la circonférence
sade = scanner.nextDouble();

{
System.out.println("Ympyrän pinta-ala on " + sade*sade*Math.PI);
}

System.out.print("\nJatketaanko (kylla/ei): "); //Est-ce que tu continue? oui ou non
vastaus = scanner.nextString();

}
while (vastaus == 'kylla');//oui
scanner.close();

}
}
A voir également:

2 réponses

Utilisateur anonyme
22 juin 2008 à 18:47
Il est où le problème ?
PS: faut arrêter le finlandais ;)
0
Marco la baraque Messages postés 996 Date d'inscription vendredi 9 mai 2008 Statut Contributeur Dernière intervention 5 novembre 2009 329
22 juin 2008 à 18:56
Hello !
while (vastaus == 'kylla');//oui 

il faut le remplacer par :
while (vastaus.equals("kylla"));//oui 


En effet, le == ça t'indique l'égalité des adresses, et la méthode equals l'égalité des objets.
Ici vastaus est un String instancié à un endroit et possédant une adresse, à laquelle tu stockes ce que tu lis depuis ton entrée standard. Quand tu fais vastaus == "kylla", "kylla" est aussi de type String, mais c'est une nouvelle instance qui est créée, donc qui a une autre adresse, et donc ton test retourne false et tu sors de ta boucle.

Sinon, juste un petit commentaire : Scanner scanner = new Scanner(System.in); tu devais le mettre avant ton do, car ça ne sert à rien d'instancier une nouvelle variable à chaque tour de boucle, donc ce serait plus performant.

Cordialement,
0
Merci marco pour ton aide et surtout pour tes explications. Merci encore
0