Fonction recomencer java
Résolu/Fermé
A voir également:
- Fonction recomencer java
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Fonction si et - Guide
- Java apk - Télécharger - Langages
- Eclipse java - Télécharger - Langages
2 réponses
Utilisateur anonyme
Modifié par tiobet le 23/09/2012 à 10:32
Modifié par tiobet le 23/09/2012 à 10:32
C'est une boucle, l'une des bases de la programmation au même titre que les variables et les conditions :).
En Java, c'est :
Le (1) est un booléen (true/false). While signifie "tant que". Donc, tant que c'est vrai, ça répète.
Tu peux aussi (et surtout) faire des tests sur des variables. Par exemple, while (test == 1) fera se répéter tant que la variable test sera égale à 1.
Plus d'infos : https://openclassrooms.com/fr/courses/6173501-debutez-la-programmation-avec-java?archived-source=26832
En Java, c'est :
while (1) { Code à répéter }
Le (1) est un booléen (true/false). While signifie "tant que". Donc, tant que c'est vrai, ça répète.
Tu peux aussi (et surtout) faire des tests sur des variables. Par exemple, while (test == 1) fera se répéter tant que la variable test sera égale à 1.
Plus d'infos : https://openclassrooms.com/fr/courses/6173501-debutez-la-programmation-avec-java?archived-source=26832
KX
Messages postés
16760
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
23 sept. 2012 à 13:19
23 sept. 2012 à 13:19
Ce que tu cherches à faire ce sont des label/goto, qui ont été vivement critiqués en 1968 par Dijkstra. Depuis, la plupart des langages de programmation ont supprimés ces label/goto pour mettre en place une nouvelle structure de code, basé sur l'utilisation de fonctions/procédures/méthodes.
Exemple en Java:
Exemple en Java:
public static void afficher(String mois, int nbJours) { for (int jour=1; jour<=nbJours; jour++) System.out.printf("%d %s\n",jour,mois); } public static void main(String[] args) { afficher("Janvier",31); afficher("Février",28); afficher("Mars",31); // ... }
C'est quoi public static void?
Args?
int a = 0;
int b = 1;
int c = 2;
int d = 3;
String mois[] = {" janvier"," fevrier"," mars"," avril"};
int dates[] = {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};
for(int i =0; i<32;i++){
System.out.print(dates [i]);
System.out.println(mois [a]);
}
}
mais il plante quand j'introduit d'autre mois
Args?
int a = 0;
int b = 1;
int c = 2;
int d = 3;
String mois[] = {" janvier"," fevrier"," mars"," avril"};
int dates[] = {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};
for(int i =0; i<32;i++){
System.out.print(dates [i]);
System.out.println(mois [a]);
}
}
mais il plante quand j'introduit d'autre mois
KX
Messages postés
16760
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
23 sept. 2012 à 14:30
23 sept. 2012 à 14:30
"C'est quoi public static void? Args?"
Ce n'est pas très important de le savoir si tu débutes, mais il ne faut pas les oublier parce que sinon ton programme ne pourra pas fonctionner.
"mais il plante quand j'introduit d'autre mois"
C'est parce que t'as eu de la chance qu'il n'ait pas planté avant !
Si tu es habitué à la programmation sur calculatrice, alors commence par faire le code sur ta calculatrice avant de le transposer en Java, parce que là ton code n'a ni queue ni tête. Ce n'est pas parce qu'il n'y a pas label/goto en Java que l'on doit écrire ça n'importe comment, bien au contraire !
Ce n'est pas très important de le savoir si tu débutes, mais il ne faut pas les oublier parce que sinon ton programme ne pourra pas fonctionner.
"mais il plante quand j'introduit d'autre mois"
C'est parce que t'as eu de la chance qu'il n'ait pas planté avant !
Si tu es habitué à la programmation sur calculatrice, alors commence par faire le code sur ta calculatrice avant de le transposer en Java, parce que là ton code n'a ni queue ni tête. Ce n'est pas parce qu'il n'y a pas label/goto en Java que l'on doit écrire ça n'importe comment, bien au contraire !
arth
Messages postés
9374
Date d'inscription
mardi 27 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2016
1 293
23 sept. 2012 à 14:38
23 sept. 2012 à 14:38
System.out.println(mois [a]);
Hmm si tu n'incrémentes jamais A, ça ne marchera pas. Tu n'auras que Janvier qui s'affiche.
Si tu mets tout en tableau, alors il ne faut pas faire
for(int i =0; i<32;i++){
Mais utiliser la taille du tableau pour la valeur max de i comme ça :
for(int i =0; i<dates.length;i++){
Cette fonction : public static void main(String[] args)
Est la fonction première du programme, à savoir celle qui sera exécutée au lancement du programme.
Args correspond aux argument qui sont passés au programme. Exemple :
java -cp . MonProgramme argument1 argument 2
Ici le tableau args contiendra argument1 et argument 2, comme si on l'avait écrit ainsi :
String[] args = {"argument1","argument2"};
Cette écriture est nécessaire, mais non utile dans ton cas.
PS : KX, j'ai bien songé à faire comme toi, mai il y a la contrainte des deux boucles. Faut ben apprendre piti à piti ;-)
Hmm si tu n'incrémentes jamais A, ça ne marchera pas. Tu n'auras que Janvier qui s'affiche.
Si tu mets tout en tableau, alors il ne faut pas faire
for(int i =0; i<32;i++){
Mais utiliser la taille du tableau pour la valeur max de i comme ça :
for(int i =0; i<dates.length;i++){
Cette fonction : public static void main(String[] args)
Est la fonction première du programme, à savoir celle qui sera exécutée au lancement du programme.
Args correspond aux argument qui sont passés au programme. Exemple :
java -cp . MonProgramme argument1 argument 2
Ici le tableau args contiendra argument1 et argument 2, comme si on l'avait écrit ainsi :
String[] args = {"argument1","argument2"};
Cette écriture est nécessaire, mais non utile dans ton cas.
PS : KX, j'ai bien songé à faire comme toi, mai il y a la contrainte des deux boucles. Faut ben apprendre piti à piti ;-)
KX
Messages postés
16760
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
23 sept. 2012 à 14:59
23 sept. 2012 à 14:59
incrémenter, ça veut dire "ajouter 1", c'est à dire que quand tu es à janvier, il faut à un moment passer à février, puis à mars (et ça repart ^^). Par exemple i++ incrémente i, ce qu'il faut c'est faire a++ aussi.
Cependant ton tableau "dates" ne sert à rien, parce que dates[i] c'est exactement pareil que i tout seul !
PS : j'ai fait une fonction pour souligner la différence fondamentale qu'il y avait entre la structure des programmes avec et sans les label/goto. Parce que deux boucles ça se fait très bien sur une calculatrice, alors que les fonctions n'existent pas.
Remarque : il faudrait quand même voir à ne pas oublier que tous les mois n'ont pas 31 jours :p
Cependant ton tableau "dates" ne sert à rien, parce que dates[i] c'est exactement pareil que i tout seul !
PS : j'ai fait une fonction pour souligner la différence fondamentale qu'il y avait entre la structure des programmes avec et sans les label/goto. Parce que deux boucles ça se fait très bien sur une calculatrice, alors que les fonctions n'existent pas.
Remarque : il faudrait quand même voir à ne pas oublier que tous les mois n'ont pas 31 jours :p
23 sept. 2012 à 10:41
En fait j'ai un calendrier de l'année a faire en seulement deux boucle:
Comme c'est la première fois on doit avoir que des mois de 30 jours chacun, j'ai donc fais janvier:
void main(){
for(int i=1;i<=31;i=i+1){
print(i);
println("janvier");}
}
Et c'est la que je voudrais faire: retourner au début et changer le nom du mois.
tu comprend?
Modifié par arth le 23/09/2012 à 11:31
Exemple pouvoir utiliser des tableaux.
Du genre :
public static void main(String...args)
{
String[] mois= {"Janvier","Fevrier", etc ....."};
for(int i=0;i<mois.length;i++)
{
for(int j=1;j<32;j++)
{
System.out.println(j+""+mois[i]);
}
}
}
Mais ton code ne ressemble pas trop à du java, plutôt à du c/c++
23 sept. 2012 à 11:16
Merci