Probleme avec java

romain1 -  
 romain1 -
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
 
Il est où le problème ?
PS: faut arrêter le finlandais ;)
0
Marco la baraque Messages postés 996 Date d'inscription   Statut Contributeur Dernière intervention   329
 
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
romain1
 
Merci marco pour ton aide et surtout pour tes explications. Merci encore
0