Souci avec mon code
lixana
-
tksteph Messages postés 204 Date d'inscription Statut Membre Dernière intervention -
tksteph Messages postés 204 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
jai pas encore fini le code mais cette parti ne me donne pas le resultat attendu , aidez moi svp je suis debutant en java.
import java.io.*;
import java.util.*;
public class moyennes {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
final int Nel_max = 40;
int Lnom = 20;
String nom[]= new String[Nel_max];
int moyenne[]= new int[Nel_max];
int nel;
int note;
int s_note;
int i;
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>Nel_max)
System.out.println ("***Incorrect***");
}while (nel>0 && nel<=Nel_max);
Scanner sc1=new Scanner(System.in);
for ( i=0;i<nel;i++){
System.out.println("nom de l'eleve" + i+ ":" );
}
}
}
jai pas encore fini le code mais cette parti ne me donne pas le resultat attendu , aidez moi svp je suis debutant en java.
import java.io.*;
import java.util.*;
public class moyennes {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
final int Nel_max = 40;
int Lnom = 20;
String nom[]= new String[Nel_max];
int moyenne[]= new int[Nel_max];
int nel;
int note;
int s_note;
int i;
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>Nel_max)
System.out.println ("***Incorrect***");
}while (nel>0 && nel<=Nel_max);
Scanner sc1=new Scanner(System.in);
for ( i=0;i<nel;i++){
System.out.println("nom de l'eleve" + i+ ":" );
}
}
}
A voir également:
- Souci avec mon code
- Code ascii - Guide
- Code puk bloqué - Guide
- Code activation windows 10 - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code blocks - Télécharger - Langages
3 réponses
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
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.