IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

boucle while en java


Sujet :

Langage Java

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 28
    Par défaut boucle while en java
    Bonsoir,

    je ne comprend pas pourquoi ma boucle while ne fonctionne pas, voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    // 1)
     
        public static int A(int s){
    	int res=1000;
     
    	for (int i=1;i<s;i++){
    	    res=res+1000;
    	}
    	return res;
        }
     
        // 2
        public static int B(int s){
    	int res=10000;
     
    	for (int i=1;i<s;i++){
    	    res=res+3;
    	}
    	return res;
        }
     
        // 3
     
        public static int Score(){
    	int seconde =1;
    	int a=A(seconde);
    	int b=B(seconde);
     
    	while (a<b){
    	    seconde++;
    	}
    	return seconde;
        }
     
     public static void main (String [] args){
     
    	System.out.println(Score());
        }
    Merci de bien vouloir m'aider

  2. #2
    Rédacteur

    Avatar de autran
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2015
    Messages
    1 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2015
    Messages : 1 241
    Billets dans le blog
    55
    Par défaut
    rajoute ça dans ta fonction score et tu vas vite comprendre ou chercher
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    while (a < b)
    		{
    			System.out.println(seconde);
    			seconde++;
    		}
    Développeur Java
    Site Web

  3. #3
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    "Ne fonctionne pas" ne veut rien dire : on est dans un domaine technique qui réclame de la précision. Soit çà ne compile pas, soit il y a une erreur, soit elle fait quelque chose, soit elle ne pas quelque chose. Il faudrait qu'on sache les messages d'erreur, le comportement qu'elle devrait avoir, celui qu'elle a.

    Par ailleurs, de base lorsqu'on a une boucle while dont la condition est basée sur des éléments qui ne varient pas pendant l'exécution de la boucle, on a forcément une boucle infinie.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    while (a<b){
    	    seconde++;
    	}
    • si a<b, alors on incrément indéfiniment seconde (lorsqu'on arrive au max, ça recommence à la valeur min, et ainsi de suite)
    • si a>=b, alors on ne fait pas de boucle.


    Comme dans ton programme a vaut 1000, et b, 10000, on entre dans la boucle, et le while ne se termine jamais, parce que a et b garde indéfiniment cette valeur, la condition restant donc toujours vraie.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 28
    Par défaut
    En fait le but du programme c'est de savoir a combien de seconde A dépasse B, je ne voit pas comment faire avec la boucle while ?

  5. #5
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par am9511 Voir le message
    En fait le but du programme c'est de savoir a combien de seconde A dépasse B, je ne voit pas comment faire avec la boucle while ?
    En gros calculer une différence avec une boucle while ? En voilà une idée... mais bon je suppose qu'un prof te demande ça.

    Et bien l'algorithme c'est (en supposant que B est bien inférieur ou égal à A) :
    Code pseudocode : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    entrées A et B, tel que A>=B
    while (B < A ) // tant que B est inférieur à A {
     
        on compte 1 seconde (autrement dit, on incrémente un compteur de secondes d'une seconde)
        on rapproche B de A d'une seconde (autrement dit, on incrémente B d'une seconde)
     
    }

    Le nombre de secondes comptées est ce qu'on veut obtenir.
    Et la condition du while est bien dépendante de variables qui varient au cours de chaque itération (ce qui n'est pas une garantie suffisante pour que la boucle s'arrête, mais nécessaire).
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 28
    Par défaut
    Peux tu me le traduire en java s'il te plaît

  7. #7
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Réfléchis un peu : comment incrémenter une variable ? Tu le fais déjà dans ton code en plus.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  8. #8
    Rédacteur

    Avatar de autran
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2015
    Messages
    1 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2015
    Messages : 1 241
    Billets dans le blog
    55
    Par défaut
    En fait le but du programme c'est de savoir a combien de seconde A dépasse B, je ne voit pas comment faire avec la boucle while ?
    Si ton but était plutôt de savoir à partir de quelle valeur de s on a A(s) qui dépasse B(s) alors tu n'as que ça à modifier :
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public static int Score()
    	{
    		int seconde = 1;
    		int a = A(seconde);
    		int b = B(seconde);
    		while (a < b)
    		{
    			seconde++;
    			a = A(seconde);
    			b = B(seconde);
    		}
    		return seconde;
    	}
    et ça ne doit pas faire loin de 11
    Développeur Java
    Site Web

  9. #9
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 28
    Par défaut
    Merci beaucoup !

Discussions similaires

  1. Boucle while & read
    Par gibet_b dans le forum Linux
    Réponses: 4
    Dernier message: 29/04/2005, 15h38
  2. boucle while et post incrémentation
    Par tut dans le forum C++
    Réponses: 7
    Dernier message: 10/12/2004, 17h24
  3. [MFC] Dialog dans une boucle while
    Par oxor3 dans le forum MFC
    Réponses: 5
    Dernier message: 23/04/2004, 22h51
  4. [débutant]Documentation? boucle "while"? Session?
    Par o151181 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 19/01/2004, 15h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo