Code simple

rokudaime777 Messages postés 82 Statut Membre -  
KX Messages postés 19031 Statut Modérateur -
Bonjour,
Je me prend la tete avec code simple que j'arrive pas à compiler
Je dois completer un programme pour faire en sorte que l'argument (int) que je met correspond au mois et que cela donne aussi le nombre de jour dans le mois

public class TestMois {

public static void main(String args[]) {
int mon_mois = Integer.parseInt(args[0]);
""Mois mon_mois = new Mois;
moisJours [] = new Mois;
moisJours[1] = ("Janvier","31");
moisJours[2] = ("Février","28");""

System.out.print("Le mois de " + moisJours[mon_mois].nom + " a ");
System.out.println(moisJours[monMois].jours + " jours");
}
}
class Mois {
String nom;
int jours;

Mois(String nom,int jours){
this.nom=nom;
thisjours=jours;
}
Ce que j'ai mis en double guillemet est de ma création (qui est completement faux), je dois compléter à cet endroit avec un bonde code pour que cela fonctionne, une explication serai plus que la bienvenue... Merci

1 réponse

KX Messages postés 19031 Statut Modérateur 3 020
 
public class TestMois {

public static void main(String args[]) {

int mon_mois = Integer.parseInt(args[0]);

// tu ne peux pas définir deux fois "mon_mois", c'est un int, ça ne peux pas être un Mois en même temps. De plus ta classe Mois a un constructeur à deux arguments, tu ne peux donc pas écrire "new Mois" sans mettre d'argument
// Mois mon_mois = new Mois;

// ici tu déclares un tableau, mais il faut en préciser le type et la taille
Mois[] moisJours = new Mois[2];

// là tu construis un objet Mois, il te faut donc appeler le constructeur avec l'opérateur new, et respecter la signature (String, int)
moisJours[1] = new Mois("Janvier",31);
moisJours[2] = new Mois("Février",28);

// il est plus logique de mettre tout ce qui concerne la même ligne à la suite, mais ce n'est pas une erreur
System.out.println("Le mois de " + moisJours[mon_mois].nom + " a " + moisJours[monMois].jours + " jours");

}
}

// il est bon de définir une visibilité public, protected ou private aux classes, arguments, méthodes et constructeur, la valeur par défaut étant assez traître.
public class Mois {

public String nom;
public int jours;

public Mois(String nom,int jours){
this.nom=nom;

// n'oublie pas le point entre this et jours
this.jours=jours;
}

// il manque une accolade pour terminer la classe Mois
}
0