Fonction recomencer java

Résolu/Fermé
Mokmok01 - 23 sept. 2012 à 10:16
 mokmok01 - 23 sept. 2012 à 15:40
Bonjour,
Je programme sur ma calculette Casio 35+ et je suis depuis peux passer au java. Sur Casio il y a une fonction qui permet de recommencer un programme ou l'on veux:

Lbl 0
.
.
. // Notre programme
.
.
Goto 0

je cherche cette même fonction sous Java, elle existe?

D'avance merci



A voir également:

2 réponses

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 :

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
0
Merci de ta réponse, mais je connaissais ces fonction.
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?
0
arth Messages postés 9374 Date d'inscription mardi 27 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2016 1 293
Modifié par arth le 23/09/2012 à 11:31
Si la condition est seulement deux boucles, il y en a-t-il d'autres?

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++
0
Je connais pas du tout ça, je vais voir sur internet!
Merci
0
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
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:
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);
    // ...
}
0
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
0
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
"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 !
0
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
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 ;-)
0
En effet, j'ai que janvier qui s'affiche, donc incrémenter ça veut dire quoi? :D
j'ai rien compris à l string et args l ! maisc'est pas grave.

Et oui je sais que c'est petit à petit !! :)
0
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
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
0