Incapable de sortir d'une boucle

Le problème exposé dans ce sujet a été résolu.

Bonjour, je suis actuellement le cours sur OC à propos de Java. Je fais un TP pour créer un convertisseur celcius/faranheit.

Donc, mon problème est le suivant. J’affiche une boucle pour forcer l’utilisateur à sélectionner le choix 1 ou le choix 2. Mon but est tant que le choix n’est pas 1 ou 2, la boucle s’affiche. Or, je ne suis pas capable de sortir de cette boucle.... Je suis débutant ! Merci de m’aider :) `public class Tpfaraneite2 {

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
public static void main(String[] args) {
    System.out.println("CONVERTISSEUR DEGRÉ CELCIUS ET DEGRÉS FHRENHEIT");
    System.out.println("------------------------------------------------");


    // on crée la boucle
    char depart = 'O';
    while(depart == 'O')
    {

        int choix = 0;
    Scanner sc = new Scanner(System.in);

    //on détermine si le choix est 1 ou 2
    do
    {
        System.out.println("Choisissez le mode de conversion:");
        System.out.println("1 - Convertisseur Celcius - Fahrenheit");
        System.out.println("2 - Convertisseur Fahreinheit - Celius");
        choix = sc.nextInt();
    }while(choix != 1 || choix != 2);

    // On détermine le degré a convertir
    if(choix == 1) // celsius vers fh
    {
        System.out.println("Température à convertir: ");
        int temp1 = sc.nextInt();
        int total = (9/5 * temp1 ) + 32;
        System.out.println(temp1 +"degrés celicus équivaut à"+ total + " degré Fh");
    }
    else if (choix == 2) // fh vers celcius
    {
        System.out.println("Température à convertir: ");
        int temp2 = sc.nextInt();
        int total2 = ((temp2 - 32) * 5) / 9;
        System.out.println(temp2 +"degrés fh équivaut à"+ total2 + " degré celcius");
    }


}

    System.out.println("Au revoir");

}

} ` Je crois que le problème se situe autour de la ligne 15....

Merci!

+0 -0

Salut,

Dans ta condition de boucle, tu écris choix != 1 || choix != 2. Cette condition est toujours vraie. Par exemple, si tu as choix égal à 1, et bien l’autre partie de la condition est vraie, et inversement.

Essaie d’écrire choix != 1 && choix != 2 à la place.

J’ai été trop lent pour donner la réponse :P .

Par contre, je peux te conseiller de bien indenter le code. Au niveau de qui est dans la boucle while. Aussi, sur ce forum, il est possible de coloriser le code en ajoutant le language après l’ouverture de la balise code.

Exemple :

1
2
3
4
5
6
 ```java
public static void main(String[] args) {
    System.out.println("CONVERTISSEUR DEGRÉ CELCIUS ET DEGRÉS FHRENHEIT");
    System.out.println("------------------------------------------------");
}
 ```
1
2
3
4
public static void main(String[] args) {
    System.out.println("CONVERTISSEUR DEGRÉ CELCIUS ET DEGRÉS FHRENHEIT");
    System.out.println("------------------------------------------------");
}

@Ozmox : Peut-être ! Il date quand même, c’est vrai. Quoique mon but final est de pouvoir créer des applications Android. Peut-être as-tu un meilleur parcours à me conseiller ?

@Helmasaur : Oui, je cherchais justement l’option ! Pour l’indentation, j’en ai l’habitude normalement. Par exemple, lorsque j’utilise PHP. C’est toujours utile lorsque le code devient long.

+0 -0

Au risque d’être totalement à côté de la plaque, le cours Java d’OC (de même que celui du ZDS) n’est-il pas obsolète?

Ozmox

Je pense que les bases sont toujours d’actualités. Je crois qu’il y a eu des changements au niveau de la date. Concernant les choses plus avancées, je ne sais pas du tout pour l’évènementielle. Par contre, il me semble y avoir du nouveau pour les processus et l’utilisation de bases de données. Je ne suis pas du tout sûr.

Je pense que la meilleure chose à faire est de continuer d’apprendre ce cours et de chercher sur un moteur de recherche quelles sont les nouveautés de Java 8. (Java 9 arrive bientôt je crois donc tu pourrais te déjà te renseigner sur cette version.

Je ne sais pas où est-ce que tu pourrais trouver un tutoriel « moderne » sur le Java. Peut être dur Developpez.net. Je sais que sur le site de Kotlin (langage officiel pour les applications Android), il y a un tutoriel le concernant.

EDIT : on dirait que les changements sont plus importants que je ne pensais.

Je viens de lire sur Kotlin, c’est en effet quelque chose qui me semble vraiment excellent et plus proche de mon but final, qu’est de développer des applications Androids. En effet, je n’ai aucun intérêt pour la partie logiciel de Java. Donc, tout ce que j’ai appris jusqu’à présent.

À la base, Kotlin me semble très semblable à Java aussi (le peu que j’en sais !). Selon vous, est-ce je serais mieux de finir Java ou je pourrais sauter directement sur Kotlin ? À ce que j’ai lu, aucun pré requis n’est nécéssaire....

Merci de vos réponses !

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte