Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
(Resolu) Aide pour mon 1er programme Java
Auteur Message
Répondre en citant
Message (Resolu) Aide pour mon 1er programme Java 
Bonsoir à tous !

Depuis peu, j'apprend le Java et, je me suis lancé dans mon premier programme, une calculatrice (la base quoi)
Comme je suis qu'un débutant toutes mes entrées et sorties se font sur la console ^^ plus tard je passerais un niveaux au dessus en créant une fenêtre Very Happy

BREF

Voilà mon pb :

->J'aimerais mettre en entrée directement le calcule, car pour l'instant comme vous pourrez le voir dans mon prgm si dessous j'entre un à un les caractères

(une image c'est mieux pour vos yeux)

Donc comment faire ? sinon je me doute que tout mon code est à changer ^^

le code :
Code:
package test;

   import java.util.*;

public class Calc {

    public static void main(String[] args) {
       
                Scanner sc = new Scanner(System.in);
                 System.out.println("Veuillez saisir un nombre :");
        int nbr = sc.nextInt();
               Scanner sv = new Scanner(System.in);
                System.out.println("Veulliez choisir un opérateur :");
        String ops = sv.nextLine();
               Scanner sb = new Scanner(System.in);
               System.out.println("Choisir l'autre nombre :");
        int nbr2 = sb.nextInt();
       
        switch (ops) {
            case "*":
                int resultat = nbr*nbr2;
            System.out.println(resultat);
            break;
            case "/":
                int resultat2 = nbr/nbr2;
            System.out.println(resultat2);
            break;
            case "-":
                int resultat3 = nbr-nbr2;
            System.out.println(resultat3);
            break;
            case "+":
                int resultat4 = nbr+nbr2;
            System.out.println(resultat4);
            break;
            default:
            System.out.println(nbr);
           
                           
        }
       
    }
   
}


PS: oui à la fin je demande d'afficher nbr, mais c'est parce que il faut que je revois mes boucles ^^
PPS: J'ai trouvé inutile d'ajouter des commentaires, mais si il le faut dite le moi Okay



Dernière édition par slendersykes le Mar 28 Fév 2017 - 22:10; édité 1 fois

______________________________________________________
Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message (Resolu) Aide pour mon 1er programme Java 
Je précise déjà que ton Scanner sc peut être utilisé plusieurs fois même avec une autre méthiode donc les scanners sv et sb peuvent être supprimés :
Code:

        public static void main(String[] args) {
           //Scanner pour tout le code
                    Scanner sc = new Scanner(System.in);
                     System.out.println("Veuillez saisir un nombre :!!)
            int nbr = sc.nextInt();
                    System.out.println("Veulliez choisir un opérateur :!!)
            String ops = sc.nextLine();
                   System.out.println("Choisir l'autre nombre :!!)
            int nbr2 = sc.nextInt();     
    }

Mais bon de toutes façons, tu vas voir que tu n'en auras besoin qu'une seule fois

EDIT :
Pareil pour ton switch !
Déclares resultat en dehors et assigne lui une valeur dans ton switch, puis ensuite tu peux l'afficher dedans ou en dehors. Wink






Ensuite pour pouvoir décomposer l'entrée, tu va devoir utiliser la méthode split().
Par exemple, tu veux décomposer ton string en plusieurs morceaux, chaque morceau étant délimité par '+' :
Code:

String adecomposer = "J'aime+Java";
String[] morceaux = adecomposer.split("+"); //Tu vas d'abord devoir stocker les morceaux dans un tableau.
String morceau1 = morceaux[0]; //J'aime
String morceau2 = morceaux[1]; //Java

J'imagine que tu sais utiliser les tableaux Mr. Green
Là, adecomposer à été coupé à chaque "+" , ici il n'y en a qu'un donc le tableau morceaux contient 2 élément : "J'aime" et "Java"

Mais là le problème, c'est qu'on ne peut pas détecter quel opérateur a été utilisé..
Je ne vais pas te donner un code complet pour pouvoir te laisser t'entrainer (sachant que ce problème est très simple;))

Je te mets sur la bonne voie :
Ce que tu vas faire c'est "split" l'entrée de l'utilisateur d'abord à chaque "+"
SI morceaux.length (longueur du tableau morceaux) est égal à 1, alors l'entrée ne s'est pas diviseée : L'opération n'est pas une addition.
Après avec moins et ainsi de suite. !

J'espère avoir été assez clair N'hésite SURTOUT PAS Razz à me le dire, saches que je n'ai pas encore pu tester mon code, il est peut-êtr faux, je vais me corriger au plus vite.
Bonne chance avec Java ! Okay




______________________________________________________


Mon site waibe
Visiter le site web du posteur ICQ AIM Yahoo Messenger MSN GTalk/Jabber Skype
Répondre en citant
Message (Resolu) Aide pour mon 1er programme Java 
Merci pour la réponse Very Happy je ferai ceci demain après mes cours :p sinon pour mon Scanner merci, je pensais qu'il fallait en ajouter un pour chaque lecture ^^'




______________________________________________________
Répondre en citant
Message (Resolu) Aide pour mon 1er programme Java 
Bon je suis perdu avec split, j'ai un warning qui me dis "Invalid regular expression : Dangling meta charactere '+'" et quand je le lance, la console m'affiche la même erreur

Code:
                Scanner sc = new Scanner(System.in);
        String adecomposer = sc.nextLine();
        String[] morceaux = adecomposer.split("+");
        String morceaux1 = morceaux[0];
        String morceaux2 = morceaux[1];


EDIT

j'ai résolu le problème en remplaçant + par un a ._.




______________________________________________________
Répondre en citant
Message (Resolu) Aide pour mon 1er programme Java 
slendersykes a écrit:
Bon je suis perdu avec split, j'ai un warning qui me dis "Invalid regular expression : Dangling meta charactere '+'" et quand je le lance, la console m'affiche la même erreur

Code:
                Scanner sc = new Scanner(System.in);
        String adecomposer = sc.nextLine();
        String[] morceaux = adecomposer.split("+");
        String morceaux1 = morceaux[0];
        String morceaux2 = morceaux[1];


EDIT

j'ai résolu le problème en remplaçant + par un a ._.

Tu peux me passer ton code complet, j'essaierai de voir ce qui cloche.




______________________________________________________


Mon site waibe
Visiter le site web du posteur ICQ AIM Yahoo Messenger MSN GTalk/Jabber Skype
Répondre en citant
Message (Resolu) Aide pour mon 1er programme Java 
voilà, dans celui ci j'ai pas le swtich donc il n'y a pas grand chose de plus, et j'utilise Netbeans si il peut y avoir un rapport .-.

Code:
package test;

   import java.util.*;

public class Calc {

    public static void main(String[] args) {
       
                Scanner sc = new Scanner(System.in);
        String adecomposer = sc.nextLine();
        String[] morceaux = adecomposer.split("a");
        String morceaux1 = morceaux[0];
        String morceaux2 = morceaux[1];
               
        System.out.println(morceaux1 + morceaux2);
       
    }
   
}





______________________________________________________
Répondre en citant
Message (Resolu) Aide pour mon 1er programme Java 
L'IDE n'a normalement aucun impacte sur ton code.
Je vais te refaire un code, mais saches juste que ton code ne risquait pas de fonctionner car dans la ligne "System.out.println" tu as indiqué morceau1 + morceau 2 sauf que ces valeurs sont Strings, il faut donc d'abord les convertir en double (en cas de nombre décimal) je te montrerais comment avec le reste du code. Okay




______________________________________________________


Mon site waibe
Visiter le site web du posteur ICQ AIM Yahoo Messenger MSN GTalk/Jabber Skype
Répondre en citant
Message (Resolu) Aide pour mon 1er programme Java 
Le problème venait du fait que "+" est un caractère particulier, qu'on ne peut pas utiliser normalement dans cette situation.
Pareil pour "*" donc dans ce cas, on va écrire "\\+" et "\\*"
Je te laisse le code, les if s'emboitent donc cest pas la meilleure méthode, mais bon.. Au pire tu pourras le simplifier, c'est un bon exercice Okay

Code:

   public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        double morceau1,morceau2; //Définition des variables dès le début
String adecomposer = sc.nextLine();
String[] morceaux = adecomposer.split("\\+"); //on commence pas décomposer le l'entrée de l'utilisateur avec +:
if (morceaux.length > 1) { //Si la longueur du tableau est plus de 1, l'opérateur utilisé est +, donc on peut effectuer l'opération tranquillement
 morceau1 = Double.parseDouble(morceaux[0]); //On convertit en double (l'utilisateur peut donc utiliser des nombres décimaux, avec Int, le code aurait été Integer.parseInt(morceaux[0])
morceau2 = Double.parseDouble(morceaux[1]);
System.out.println(morceau1 + morceau2);
} else {   //Sinon répète l'opération
   morceaux = adecomposer.split("-");   
   if (morceaux.length >1) { //Avec un IF dans un autre, chose à ne pas faire en temps normal, mais c'est la méthode la plus simple à code, surtout quand on n'a pas beaucoup de temps (LOL)
       morceau1 = Double.parseDouble(morceaux[0]);
      morceau2 = Double.parseDouble(morceaux[1]);
      System.out.println(morceau1 - morceau2);
      } else { morceaux = adecomposer.split("\\*");
         if (morceaux.length >1) {
             morceau1 = Double.parseDouble(morceaux[0]);
            morceau2 = Double.parseDouble(morceaux[1]);
            System.out.println(morceau1 * morceau2);
            } else { morceaux = adecomposer.split("/");
            if (morceaux.length >1) {
                morceau1 = Double.parseDouble(morceaux[0]);
               morceau2 = Double.parseDouble(morceaux[1]);
               System.out.println(morceau1 / morceau2);
      }
            }
}
}
}


J'espère que cette fois ci j'ai été assez clair ! Mr. Green




______________________________________________________


Mon site waibe
Visiter le site web du posteur ICQ AIM Yahoo Messenger MSN GTalk/Jabber Skype
Répondre en citant
Message (Resolu) Aide pour mon 1er programme Java 
Encore merci Very Happy j'avais vu sur le net parseInt, que je ne savais pas utiliser ^^" mais bref merci c'est résolu ! Smile




______________________________________________________
Message (Resolu) Aide pour mon 1er programme Java 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 1
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch