Souci avec mon code
Fermé
lixana
-
15 mai 2013 à 01:25
tksteph Messages postés 204 Date d'inscription samedi 20 mars 2010 Statut Membre Dernière intervention 3 janvier 2018 - 15 mai 2013 à 02:09
tksteph Messages postés 204 Date d'inscription samedi 20 mars 2010 Statut Membre Dernière intervention 3 janvier 2018 - 15 mai 2013 à 02:09
A voir également:
- Souci avec mon code
- Code asci - Guide
- Code puk bloqué - Guide
- Code telephone oublié - Guide
- Code activation windows 10 - Guide
- Code gta 4 ps4 - Guide
3 réponses
tksteph
Messages postés
204
Date d'inscription
samedi 20 mars 2010
Statut
Membre
Dernière intervention
3 janvier 2018
25
Modifié par tksteph le 15/05/2013 à 01:34
Modifié par tksteph le 15/05/2013 à 01:34
Et c'est quoi le résultat attendu?
il doit enregistrer la valeur saisie comme reponse et executer les conditions,
mais il me donne le contraire comme resultat :
exemple:
nombre d eleve:
20
20
nombre deleve:
il repete a chaque fois quand la saisie n'est pas correcte on ne peu plus saisir une autre valeur
mais il me donne le contraire comme resultat :
exemple:
nombre d eleve:
20
20
nombre deleve:
il repete a chaque fois quand la saisie n'est pas correcte on ne peu plus saisir une autre valeur
tksteph
Messages postés
204
Date d'inscription
samedi 20 mars 2010
Statut
Membre
Dernière intervention
3 janvier 2018
25
Modifié par tksteph le 15/05/2013 à 02:11
Modifié par tksteph le 15/05/2013 à 02:11
A priori, un coup d'oeil rapide sur ton code laisse à penser que tu souhaites afficher un certain nombre de fois (indiqué par l'utilisateur) la ligne nom de l'Elève i
Et tu souhaites aussi que ce nombre de fois soit entre 0 et Nel_max.
Malheureusement le controle de ta boucle do {}while() ne permet pas de faire celà, mais plustôt de boucler tant que la valeur saisie est entre 0 et Nel_max, et de faire le traitement plustôt lorsque la valeur est < 0 ou > Max
Du coup tu auras un affichage **Incorrect** lorsque la valeur <0 et l'affichage (La repetition) lorsque la valeur est > Max
Donc pour corriger ce comportement, tu peux ajuster ton programme comme ceci
import java.util.*;
public class Moyennes {
final int nelMax = 40;
int Lnom = 20;
String nom[] = new String[nelMax];
int moyenne[] = new int[nelMax];
int nel;
int note;
int sNote;
int i;
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
new Moyennes().bouclage();
}
void bouclage(){
Scanner sc = new Scanner(System.in);
do {
System.out.println("entrez le nombre d'eleves");
nel = sc.nextInt();
System.out.println(nel);
if (nel <= 0 || nel > nelMax) { // Regarde le Controle
System.out.println("***Incorrect***");
bouclage(); // ICI tu Relance le process
}else{
for (i = 0; i < nel; i++) {
//ICI si les conditions sont OK alors tu fais tes affichages
System.out.println("nom de l'eleve" + i + ":");
}
}
} while (nel < 0 && nel >= nelMax); // Regarde le Controle
}
}
Attention avec les noms de Classes, attributs, méhtodes en Java (Respect ds Conventions) Aucun impact au niveau du fonctionnement de ton code, mais c'est bien d'y penser.
Et tu souhaites aussi que ce nombre de fois soit entre 0 et Nel_max.
Malheureusement le controle de ta boucle do {}while() ne permet pas de faire celà, mais plustôt de boucler tant que la valeur saisie est entre 0 et Nel_max, et de faire le traitement plustôt lorsque la valeur est < 0 ou > Max
Du coup tu auras un affichage **Incorrect** lorsque la valeur <0 et l'affichage (La repetition) lorsque la valeur est > Max
Donc pour corriger ce comportement, tu peux ajuster ton programme comme ceci
import java.util.*;
public class Moyennes {
final int nelMax = 40;
int Lnom = 20;
String nom[] = new String[nelMax];
int moyenne[] = new int[nelMax];
int nel;
int note;
int sNote;
int i;
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
new Moyennes().bouclage();
}
void bouclage(){
Scanner sc = new Scanner(System.in);
do {
System.out.println("entrez le nombre d'eleves");
nel = sc.nextInt();
System.out.println(nel);
if (nel <= 0 || nel > nelMax) { // Regarde le Controle
System.out.println("***Incorrect***");
bouclage(); // ICI tu Relance le process
}else{
for (i = 0; i < nel; i++) {
//ICI si les conditions sont OK alors tu fais tes affichages
System.out.println("nom de l'eleve" + i + ":");
}
}
} while (nel < 0 && nel >= nelMax); // Regarde le Controle
}
}
Attention avec les noms de Classes, attributs, méhtodes en Java (Respect ds Conventions) Aucun impact au niveau du fonctionnement de ton code, mais c'est bien d'y penser.